[{"id":28300,"web_url":"https://patchwork.libcamera.org/comment/28300/","msgid":"<ZXiBbvEBns4mdU9/@duo.ucw.cz>","date":"2023-12-12T15:51:10","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":49,"url":"https://patchwork.libcamera.org/api/people/49/","name":"Pavel Machek","email":"pavel@ucw.cz"},"content":"Hi!\n\n> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n\nI'm not sure if we should call implementation \"Linaro\". Company name\nseems misleading in this context. Could we call implementation \"anna\",\nfor example, after https://en.wikipedia.org/wiki/Anna_Atkins and\nbecause it is first version, thus \"A\"?\n\n1-4 Reviewed-by: Pavel Machek <pavel@ucw.cz>\n\nBest regards,\n\t\t\t\t\t\t\tPavel","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 B335EBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 15:51:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 01149629E1;\n\tTue, 12 Dec 2023 16:51:13 +0100 (CET)","from jabberwock.ucw.cz (jabberwock.ucw.cz [46.255.230.98])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9A473629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 16:51:11 +0100 (CET)","by jabberwock.ucw.cz (Postfix, from userid 1017)\n\tid F16971C006F; Tue, 12 Dec 2023 16:51:10 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702396274;\n\tbh=CJtQdPZzi1KN9PCZpPsjj3sf/fd91y3jyCVDEozql78=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=hhjYsqsOnBrZKL4QpFFM2q7/HutQTmeKWrRioO51vf/Ky2QJ8hBXlF7QMNHL+CrAv\n\tqJPCSg5GDHPMxbbNxmjHRDRvgiNkoTevDP060/OUKB8zv5AxI+4wYgOlSb+vHtolqn\n\tnIIc+/cQdXD44jAvhIYT7S0lTVjuLVwwOokjRKredxcJhOCeYYhdQBZjZFLdarPmzu\n\tNp5aJ0dEsSkdxMXne6PaojSrpbMmSk1K2pDwT4mMZOyPnIJrFJzsliAVGMKmjPU7kg\n\t+FPkAs+4qZy6Bx5iwTYQh7PASJj0c4i5M7WM0pMFbVkv6GjPR4gRuZe5CHqWJTT3Zw\n\t+UNyQpqwFYvvA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1;\n\tt=1702396270;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=iETQjBT4ES/hGvhPfaOHi9Hq7Oq/eO8kyTy6qaB139w=;\n\tb=hOGD7wmHfilY7XSD0HHBU025ASEFJ3MqkJNbXEBTZssUlom/IgyXl11lblhjV9x9dTmiHw\n\tIW28AlUc3yVJtBJyZsZ8B8uS+VDMquRPgTv8XbSkjOF8TJHw5QDTnU46VdOfXnL+YYu9+z\n\tLc/PudzM40ETVnMEnszwhRSlkWdNfvw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ucw.cz header.i=@ucw.cz\n\theader.b=\"hOGD7wmH\"; dkim-atps=neutral","Date":"Tue, 12 Dec 2023 16:51:10 +0100","To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Message-ID":"<ZXiBbvEBns4mdU9/@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tprotocol=\"application/pgp-signature\"; boundary=\"nQUHOPaxs+qQB9vi\"","Content-Disposition":"inline","In-Reply-To":"<20231212115046.102726-5-andrey.konovalov@linaro.org>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Pavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Pavel Machek <pavel@ucw.cz>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tlibcamera-devel@lists.libcamera.org, srinivas.kandagatla@linaro.org, \n\tbryan.odonoghue@linaro.org, admin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28301,"web_url":"https://patchwork.libcamera.org/comment/28301/","msgid":"<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>","date":"2023-12-12T16:04:27","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Pavel Machek via libcamera-devel (2023-12-12 15:51:10)\n> Hi!\n> \n> > Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> \n> I'm not sure if we should call implementation \"Linaro\". Company name\n> seems misleading in this context. Could we call implementation \"anna\",\n> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n> because it is first version, thus \"A\"?\n\nI'd agree here ... I can't imagine libcamera want's \"5 different\ncompeting softISP implementations.... all in the same code base\"\n\nThis is just 'SoftISP' in my opinion.\n\n--\nKieran\n\n\n> \n> 1-4 Reviewed-by: Pavel Machek <pavel@ucw.cz>\n> \n> Best regards,\n>                                                         Pavel\n> -- \n> People of Russia, stop Putin before his war on Ukraine escalates.","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 1D77FC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 16:04:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6403B62B32;\n\tTue, 12 Dec 2023 17:04:32 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6E1C8629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 17:04:31 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3B63F66F;\n\tTue, 12 Dec 2023 17:03:46 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702397072;\n\tbh=tQHnX/GMzSop8AYJxz0J7BbH2MJqRo5GehmsQcLsiYc=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=0PVJZ79gyqY3/j2XPBqmlwRR52oFLuTrnE51lfTWsKOmHeSDZYVuAiz+Al1IpEn9E\n\t2s6XncGoMzt5bri3In65kKNO+r5j9prgjiQFxEXZMB8pW/ZUfjhYMiomtl483JqE1u\n\tktw4ClbfGFTSYqArgr5e0sKo8YVM/hTA8OspGh1IseWiVG8ztka3LvXf8Erl99oLAg\n\tqDjt0XFklC7nvln9g5+3AKVWKIPxn51E5ADoq69cuOhQk53SgvjX+Li9C7YXxMTXN5\n\tfgey73f16LXdifnSpItYX8akyaJgh6qPeaWyOqXxVV2Kgmzx4FCw8zTPe0IL4cENPz\n\tHQR9P6vrjL1SA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1702397026;\n\tbh=tQHnX/GMzSop8AYJxz0J7BbH2MJqRo5GehmsQcLsiYc=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=Q9kIKbhFuHInU92+/5mnvRbCas44mEkXsZbR4XMHRvUaF0IC4CGoMvbATNbOSv04r\n\tHGO6HpdHKnViYIzHDk2KMBcRJxlhgrgov/g6CZ9oE0gV8Xwbd1LLGE8/pAgCA1masT\n\tVLCq7yCeFELua3RpiitiBfLnr0rPB/y1+w7Npe0Y="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Q9kIKbhF\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<ZXiBbvEBns4mdU9/@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>","To":"Andrey Konovalov <andrey.konovalov@linaro.org>,\n\tPavel Machek <pavel@ucw.cz>, Pavel Machek via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Date":"Tue, 12 Dec 2023 16:04:27 +0000","Message-ID":"<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tlibcamera-devel@lists.libcamera.org, srinivas.kandagatla@linaro.org, \n\tbryan.odonoghue@linaro.org, admin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28302,"web_url":"https://patchwork.libcamera.org/comment/28302/","msgid":"<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>","date":"2023-12-12T16:27:49","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":25,"url":"https://patchwork.libcamera.org/api/people/25/","name":"Andrey Konovalov","email":"andrey.konovalov@linaro.org"},"content":"On 12.12.2023 19:04, Kieran Bingham wrote:\n> Quoting Pavel Machek via libcamera-devel (2023-12-12 15:51:10)\n>> Hi!\n>>\n>>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n>>\n>> I'm not sure if we should call implementation \"Linaro\". Company name\n>> seems misleading in this context. Could we call implementation \"anna\",\n>> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n>> because it is first version, thus \"A\"?\n> \n> I'd agree here ... I can't imagine libcamera want's \"5 different\n> competing softISP implementations.... all in the same code base\"\n> \n> This is just 'SoftISP' in my opinion.\n\nThen SwIspLinaro could be merged into abstract SoftwareIsp,\nthe result being called just SoftwareIsp.\nAnd SoftwareIspFactory* are not needed.\nCorrect?\n\nThanks,\nAndrey\n\n> --\n> Kieran\n> \n> \n>>\n>> 1-4 Reviewed-by: Pavel Machek <pavel@ucw.cz>\n>>\n>> Best regards,\n>>                                                          Pavel\n>> -- \n>> People of Russia, stop Putin before his war on Ukraine escalates.","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 27E11BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 16:27:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 98CAA62B32;\n\tTue, 12 Dec 2023 17:27:56 +0100 (CET)","from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com\n\t[IPv6:2607:f8b0:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 02ECB629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 17:27:54 +0100 (CET)","by mail-ot1-x32b.google.com with SMTP id\n\t46e09a7af769-6d9f8578932so3109965a34.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 08:27:54 -0800 (PST)","from [192.168.118.20] ([87.116.161.153])\n\tby smtp.gmail.com with ESMTPSA id\n\tn7-20020a0ce947000000b0067a53851126sm4317428qvo.98.2023.12.12.08.27.51\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tTue, 12 Dec 2023 08:27:52 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702398476;\n\tbh=ZqdsRTpA9Go0V0+bb8NykjBzPS+yyIzFKimw3P29QP0=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=ofmJjdx5ArgwoTzwpX0eMLHbpwIlrNJkxMADqRxpnt38rd/6pofHYOo36y7DFXacK\n\tuy3XY9WMMvABOsCE0lF4JqNm4amQiI+ddNMGyd/kRtMvWVfCkEOtRphotE+iF+0D2B\n\t1apv524GwEpNL8Ay2/gkpU2WyDO05gl4VrR1jbxC3d6GQOb8KRcg7F/VP47FIdUbfk\n\tE7DRsGqgkxHaQQkUz3SGAslZrJAY/8r9dEqNOYmmJEIZEMzpWI9IdXPSOdmF299OIE\n\tOMrh2va7Tis0BgJ+Y8H25sYP94wC7eoB6h2k46zOfZ3XUes93KogSj0V+ioqD+b0mO\n\tcG3waut2qllhA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1702398473; x=1703003273;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=nDirPGihimVrk+geAGbycmloUJT3VFlriRhRa1vvlbo=;\n\tb=qSP2d6N05fcScidvxDfnk4i5Q0Av1rc6BQ+e/kw3BTowEK2CxdBvqyeFpHGAFEye+o\n\tHa3hgSbYG4nm9vtqTkrtj13yV39fWgbfUILc0zfaS2fZqc2dzVd1Ci6pnYrEN/DvBAe9\n\tjNh1dK5zaVJ/esxso1l9MH90YwzksMn0+tkqThNcaBKiDRGmkkAc5DIqBQxNMP6P4FmJ\n\tULdggK7Z3k4NASXk6Bqj47Kjf+87NnF42x6E12kENjemYZKNDGYtwmJr8j11rf+ZlazN\n\tvcyFBh02rzIWvh4j2Q9UO5za4qVD3uS5IULr9iuE+TxV7SRftwfCtKftPqMWsBW97+ZP\n\tLMMQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"qSP2d6N0\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702398473; x=1703003273;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc: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=nDirPGihimVrk+geAGbycmloUJT3VFlriRhRa1vvlbo=;\n\tb=Ne16gEW4a99+dqYVfYX/IE8usb4+yMyLxqvYWPwLqOfntobgU53GdzSkLvTBUesCik\n\ty4JxvWGFE23uDUo6JEzLiuxjXs/17zqot2g0trarHYWtrQc5EiEL7z4BfJA5ty1OZCKX\n\t5Qlp/d/bdqWVL0/Jkl4bqC74ti9PAB05nGBC+TskWv8tL3aCvSM+rA9eUo9wsheare4z\n\tOVsGLI99nw6nzUCYbo8odBk9Gfr6qmQpi3JJ7yjcZlQYw+m8qTonBxS3TYimsF59fpXF\n\tfPIy+B5GtFlAazQPygEhj2SmE3owcbOzts7qAHfs9R/Qv9DoENoW4zWh5o7ZpbCfwgVt\n\t4kUA==","X-Gm-Message-State":"AOJu0YznJ80iQeZ06jPJ6kNmQEKh/+gVjnrCNJYzmicY2e7AMVY5n1Gg\n\trDHcVplpSdkJSwWX6BEcjKLcGQ==","X-Google-Smtp-Source":"AGHT+IFUKXs44FJV2aXKD6MmU3mxHVyhuLk8Ixw52sHRq5AoUFYE0//cOWntrnR3QwbPTYNHd5YMmA==","X-Received":"by 2002:a9d:4d83:0:b0:6d9:e48c:f08a with SMTP id\n\tu3-20020a9d4d83000000b006d9e48cf08amr6219986otk.11.1702398473560; \n\tTue, 12 Dec 2023 08:27:53 -0800 (PST)","Message-ID":"<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>","Date":"Tue, 12 Dec 2023 19:27:49 +0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tPavel Machek <pavel@ucw.cz>, Pavel Machek via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>","Content-Language":"en-US","In-Reply-To":"<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Andrey Konovalov via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28303,"web_url":"https://patchwork.libcamera.org/comment/28303/","msgid":"<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>","date":"2023-12-12T16:35:11","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Andrey Konovalov (2023-12-12 16:27:49)\n> On 12.12.2023 19:04, Kieran Bingham wrote:\n> > Quoting Pavel Machek via libcamera-devel (2023-12-12 15:51:10)\n> >> Hi!\n> >>\n> >>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> >>\n> >> I'm not sure if we should call implementation \"Linaro\". Company name\n> >> seems misleading in this context. Could we call implementation \"anna\",\n> >> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n> >> because it is first version, thus \"A\"?\n> > \n> > I'd agree here ... I can't imagine libcamera want's \"5 different\n> > competing softISP implementations.... all in the same code base\"\n> > \n> > This is just 'SoftISP' in my opinion.\n> \n> Then SwIspLinaro could be merged into abstract SoftwareIsp,\n> the result being called just SoftwareIsp.\n> And SoftwareIspFactory* are not needed.\n> Correct?\n\nHas a SoftwareISPFactory requirement been discussed somewhere that I\nhaven't been involved in ?\n\n--\nKieran\n\n\n> \n> Thanks,\n> Andrey\n> \n> > --\n> > Kieran\n> > \n> > \n> >>\n> >> 1-4 Reviewed-by: Pavel Machek <pavel@ucw.cz>\n> >>\n> >> Best regards,\n> >>                                                          Pavel\n> >> -- \n> >> People of Russia, stop Putin before his war on Ukraine escalates.","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 4A841C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 16:35:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A1183629E1;\n\tTue, 12 Dec 2023 17:35:15 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 98BA1629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 17:35:14 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7C49E66F;\n\tTue, 12 Dec 2023 17:34:29 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702398915;\n\tbh=ScKXqUkqQ+gPCnpRcRwJ6ET9437cQnHmunIl7Yvy+Y4=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=WOjPDBAztSRU/IZYckcmAv9hxzGERSska2pEdt/OJTtxqI6oPcocFxyHbFpz+g6cC\n\tx6TX117a+IxFH1xU+pYI7Tp+L7izcRwdo5Uu2z243a0dc5ZpKuSI+zkfLTVr97yplh\n\t1GNFrPCu02BMrcE3AYk2IEIp3pUCRptHNRUHni291XM8mri+Dp/riWk7Ekof/Y9Ysp\n\t7vLx0Ds3lmPwMn+qu46JGfKMi/843Zf3E+lRsraXuPQFUmN2S87hIwEMjCGLqRNL1e\n\tQZOwE43i4g1wwDTccDicrYnILL8kMakRcoqqTpH6vDvoK3szTKRUQErIn7htw1mu9k\n\tgnXAMKsfrqRbw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1702398869;\n\tbh=ScKXqUkqQ+gPCnpRcRwJ6ET9437cQnHmunIl7Yvy+Y4=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=h2+DWCFaYBFcLXjLQJGZRQczTZTYFltWJLi+N/OC1cBJCuC0Ff+VMxyfTv9pJVt24\n\tNdp8raSnw7n+GN4U9nWzCLekIZUF98ajAn5ZSIzzEgg9pWQwOnFUDH8MQ00GzpUp4a\n\tG4hU1xLiJGygINgrGuAZ/LK2Dh1wzsztJygM18HI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"h2+DWCFa\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>","To":"Andrey Konovalov <andrey.konovalov@linaro.org>,\n\tPavel Machek <pavel@ucw.cz>, Pavel Machek via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Date":"Tue, 12 Dec 2023 16:35:11 +0000","Message-ID":"<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28304,"web_url":"https://patchwork.libcamera.org/comment/28304/","msgid":"<ZXiMNSek6vsOi4tA@duo.ucw.cz>","date":"2023-12-12T16:37:09","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":49,"url":"https://patchwork.libcamera.org/api/people/49/","name":"Pavel Machek","email":"pavel@ucw.cz"},"content":"Hi!\n\n> > >>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> > >>\n> > >> I'm not sure if we should call implementation \"Linaro\". Company name\n> > >> seems misleading in this context. Could we call implementation \"anna\",\n> > >> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n> > >> because it is first version, thus \"A\"?\n> > > \n> > > I'd agree here ... I can't imagine libcamera want's \"5 different\n> > > competing softISP implementations.... all in the same code base\"\n> > > \n> > > This is just 'SoftISP' in my opinion.\n> > \n> > Then SwIspLinaro could be merged into abstract SoftwareIsp,\n> > the result being called just SoftwareIsp.\n> > And SoftwareIspFactory* are not needed.\n> > Correct?\n> \n> Has a SoftwareISPFactory requirement been discussed somewhere that I\n> haven't been involved in ?\n\nOne day we may have SwIspGPU or maybe SwIspIntelMMX, so that support\nmight be worth keeping.\n\nBest regards,\n\t\t\t\t\t\t\t\tPavel","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 E0258C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 16:37:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4581062B2E;\n\tTue, 12 Dec 2023 17:37:12 +0100 (CET)","from jabberwock.ucw.cz (jabberwock.ucw.cz [46.255.230.98])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 38076629E1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 17:37:10 +0100 (CET)","by jabberwock.ucw.cz (Postfix, from userid 1017)\n\tid DF0211C006F; Tue, 12 Dec 2023 17:37:09 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702399032;\n\tbh=k3oW4Sn67LrTfJUgCcc3fq8SQtVTVK1B1yHiLWC5x2s=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=Op0RXsDnZ+AAXGpv+tCpVh9rKXPu2UzWIaMBUl5ng8k7+kLVgLOGq/AYRH076KOCh\n\tT8tTm5zvaREwH9AFJpmAYl+dws4NVRCLxxUgEgW4n8siWHxtDLMaHwOJoeNApD1qs5\n\tKAtWX1KHPaHcIBBZiIXmwDb0+aMQDXVpilOQSAJjLhlNfSHvzAa3Zwt0wMRZwlZSJ6\n\tPr0bbMh5bJGHyXjrAyLo9WFVF0xRUCoosT7ROJY8hQnVAeln6ks4xJkSAOlxbSB3yP\n\tGyGnqKov67uIduiwmnPd/RayByuzt180c5RkEDUozfpCgOL04hqyCAYlynoXD4YYXt\n\t4EvqjNEZ2ZqaQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1;\n\tt=1702399029;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=S4EF6+9vkDvJ01n6f4l4LuT6b7s43FvIpY39uDKi4kw=;\n\tb=HlKlDKM1I+BwyWOpvNTuk3LQaBWHkT2HjycWAb5VCPEZFGF30qZd0XXfylfNX/EaO1vRHJ\n\tQbw+moo+XebQMXdh1LUhvye3vldyPObDwyalhfk316VhN8i1E7hiE6A+/ufIdPEjkIALoi\n\tTgX6urOEbn2K1rnAnRTG9yGfaFyo/5g="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ucw.cz header.i=@ucw.cz\n\theader.b=\"HlKlDKM1\"; dkim-atps=neutral","Date":"Tue, 12 Dec 2023 17:37:09 +0100","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<ZXiMNSek6vsOi4tA@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tprotocol=\"application/pgp-signature\"; boundary=\"ldS8UbAU8UssacXL\"","Content-Disposition":"inline","In-Reply-To":"<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Pavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Pavel Machek <pavel@ucw.cz>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28305,"web_url":"https://patchwork.libcamera.org/comment/28305/","msgid":"<170239941964.3044059.12061358566249619273@ping.linuxembedded.co.uk>","date":"2023-12-12T16:43:39","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Pavel Machek (2023-12-12 16:37:09)\n> Hi!\n> \n> > > >>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n> > > >>\n> > > >> I'm not sure if we should call implementation \"Linaro\". Company name\n> > > >> seems misleading in this context. Could we call implementation \"anna\",\n> > > >> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n> > > >> because it is first version, thus \"A\"?\n> > > > \n> > > > I'd agree here ... I can't imagine libcamera want's \"5 different\n> > > > competing softISP implementations.... all in the same code base\"\n> > > > \n> > > > This is just 'SoftISP' in my opinion.\n> > > \n> > > Then SwIspLinaro could be merged into abstract SoftwareIsp,\n> > > the result being called just SoftwareIsp.\n> > > And SoftwareIspFactory* are not needed.\n> > > Correct?\n> > \n> > Has a SoftwareISPFactory requirement been discussed somewhere that I\n> > haven't been involved in ?\n> \n> One day we may have SwIspGPU or maybe SwIspIntelMMX, so that support\n> might be worth keeping.\n\nI envisioned that a libcamera software ISP should detect the\ncapabilities of the system it's on and construct a pipeline accordingly.\n\nI guess there might be some scenarios where specific control over which\nparts can be used might want to be controlled or configured though.\n\n\n\n> \n> Best regards,\n>                                                                 Pavel\n> -- \n> People of Russia, stop Putin before his war on Ukraine escalates.","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 04805BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 16:43:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5851262B32;\n\tTue, 12 Dec 2023 17:43:43 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 94C83629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 17:43:42 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7FB5F66F;\n\tTue, 12 Dec 2023 17:42:57 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702399423;\n\tbh=tY9xwU9VrcXsnht35X6+wg7K46nY98BJwujEJiyhKIs=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=uhKPKx7bkt8LynQOkrhiJkS5wbhGNOdsaJ4bOGZ2qRx521v+M1+aMUSwJhqN9o/HH\n\tI7kzBXIG3iDpTLD5ZUdThnVP+tUALwcSnrKB22lA1VLvC4hKrr+YNVZT7qXG15YG1d\n\tvQ2A4wkP/5ABotnI/FTtoVFwVa0sv5uEsrQBht2bv3CW6KDB3RjwVF639eEQMt1A61\n\tVp+oSZhWcFMPedMaDxxa0y72hQu4lDZqxi46qEmfcWQNOkwLzMj1PgSn/7FObC2Ykp\n\tYB2huvsqlNzPvJFMTzXbv8VOajy9WqBpuCConaL4hR6CM1c26a6YvJb/OiBiq4HdSJ\n\txSXO7A2DOJS8g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1702399377;\n\tbh=tY9xwU9VrcXsnht35X6+wg7K46nY98BJwujEJiyhKIs=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=raFFnSq4fcqK17GdrrkneE+blIE4sqBZJ20ytvVQT+Z5r8U4SVEHYR/IQCl42mzSn\n\t8L/T5QW/e2NDp/XV8SPP5clqL5KLAfng4s4m9u/rbXFUSscwVZk1u5SDg9PEiGBN/z\n\tdkzd1o0gwss9b1j86+7nV96vu369so8SHdbkLEmU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"raFFnSq4\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<ZXiMNSek6vsOi4tA@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>","To":"Pavel Machek <pavel@ucw.cz>","Date":"Tue, 12 Dec 2023 16:43:39 +0000","Message-ID":"<170239941964.3044059.12061358566249619273@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28308,"web_url":"https://patchwork.libcamera.org/comment/28308/","msgid":"<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","date":"2023-12-12T21:38:43","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi,\n\nOn 12/12/23 17:37, Pavel Machek via libcamera-devel wrote:\n> Hi!\n> \n>>>>>> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>\n>>>>>\n>>>>> I'm not sure if we should call implementation \"Linaro\". Company name\n>>>>> seems misleading in this context. Could we call implementation \"anna\",\n>>>>> for example, after https://en.wikipedia.org/wiki/Anna_Atkins and\n>>>>> because it is first version, thus \"A\"?\n>>>>\n>>>> I'd agree here ... I can't imagine libcamera want's \"5 different\n>>>> competing softISP implementations.... all in the same code base\"\n>>>>\n>>>> This is just 'SoftISP' in my opinion.\n>>>\n>>> Then SwIspLinaro could be merged into abstract SoftwareIsp,\n>>> the result being called just SoftwareIsp.\n>>> And SoftwareIspFactory* are not needed.\n>>> Correct?\n>>\n>> Has a SoftwareISPFactory requirement been discussed somewhere that I\n>> haven't been involved in ?\n> \n> One day we may have SwIspGPU or maybe SwIspIntelMMX, so that support\n> might be worth keeping.\n\nRight, so about having multiple SoftwareIsp implementations.\n\nI have been working on stasistics + debayer\nbase classes and CPU implementations of both based on refactoring\nAndrey's work.\n\nI was hoping to have a clean branch with these ready but\ngetting them in shape took longer then I hoped.\n\nStil I would like to share what I have now before tomorrows\nSoftwareIsp video call / meeting.\n\nATM the statistics and debayer classes are mostly ready,\nbut I need to merge this with Andrey's v2 RFC and\nthen produce a clean new series from this\n(assuming people like the approach).\n\nThe base idea behind this is that we can have multiple\nstatistics and debayer implementations, e.g. CPU vs GPU\nand that the SoftwareIsp class picks which one to\ninstantiate.  The current DebayerCpu class mostly \nreplaces the IspWorker class making the SoftwareIsp\ncode quite a bit simpler (note that the code is mostly\nmoved not gone).\n\nAnyways if you have time, please take a look\nat the swstats base class + linaro implementation\nas well as at the debayer base class as well\nas the DebayerCpu implementation of that:\n\nhttps://gitlab.freedesktop.org/camera/libcamera-softisp/-/tree/SoftwareISP-v02-hans2\n\nWhich are the last few commits there.\n\nNote as I already mentioned I really need to merge\nthis with Andrey's latest v03 branch into a new\nlogical clean patch series suitable for upstream submission.\n\nRegards,\n\nHans\n\n\n\n\n\n\n\n\n\n> \n> Best regards,\n> \t\t\t\t\t\t\t\tPavel","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 C23B5C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 21:38:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DB54862B32;\n\tTue, 12 Dec 2023 22:38:51 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3A6C4629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 22:38:50 +0100 (CET)","from mail-ej1-f71.google.com (mail-ej1-f71.google.com\n\t[209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-682-0AV4zgRDM5ewK8KRjHsGrQ-1; Tue, 12 Dec 2023 16:38:47 -0500","by mail-ej1-f71.google.com with SMTP id\n\ta640c23a62f3a-a1f9ab28654so118965766b.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 13:38:47 -0800 (PST)","from [192.168.43.127] ([109.38.128.50])\n\tby smtp.gmail.com with ESMTPSA id\n\twb2-20020a170907d50200b00a19084099a4sm6852478ejc.16.2023.12.12.13.38.44\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tTue, 12 Dec 2023 13:38:44 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702417131;\n\tbh=ExnUo4Bz9c4AXjFInSRYPy7VsINKvGK2Hrn4rLK34z8=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=zJDvE3WEAw1M+PKemmvAimwf8HLyTArjoClpjmF6XprHMGEqWSyH2O86YRjjwKUpr\n\tzhivGDkbUXY0nqlmz7rskx9cLVj94IexQ3zkR6oPZhHqj09mpZCcB2lW4Jqi/otI8z\n\tYwzkxB7U2jZTWpcx9tlPQEyJ0W766YwTrbqVzvpd0ryFMBhqWgGDV1WEgaqQ/osK0T\n\trwUfweK38y0/p7TF5qhZkJm3yJreOYC7N3vbZp2a6HveH3viImTfo92rHYJU4pGuSj\n\tweRBQbBkFJMyO6eod4JDjKOuf5Bq2dQNSSrJ3yGh3FmiOUmSvvktyl3JC/vefnisZP\n\tRr/j4Zb/9+v2g==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1702417129;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=1aWbqfejwwfXvl4oiZEXrSvK0gemo4JaSF1f2FUsV+s=;\n\tb=A3NCYTwy8Pkfo4Lz3Dcx4Yw8KPwphKv8k9g2j3DoC4RCOFyIcgjtyl9znz7OdQrgd/Yl5j\n\tgxV9YW32VDoDfpGrVQAptqZQ+CSBcQhs8pIrtUO+xTT2AZAHImQQOFA0PKr6NE5M5kMQt6\n\tmjLeL2/RkLYQXPC+STdh0rnfjY8xAS8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"A3NCYTwy\"; \n\tdkim-atps=neutral","X-MC-Unique":"0AV4zgRDM5ewK8KRjHsGrQ-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702417126; x=1703021926;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc: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=1aWbqfejwwfXvl4oiZEXrSvK0gemo4JaSF1f2FUsV+s=;\n\tb=LgoTpOp6chTWwU1IbOLgP/UcEr8Ez5y9F8ksYsDK5McIGc8ldi/FVScpRhiMizbGwa\n\tz5qmK/x9VCFnb8k4Cum443W72eXM58Q/6MrvDbYBnckUtwSOHl+6/jVCnB8wyzvVgsfl\n\ty1rfJRw3mklgkGsUWnh4M+gVlZa/l8ZLTcmwa7gVWDQC6ybdb0YEi58ks1ZJ8M6UORe4\n\tfzWksbFVXMGqJ9bEid6sxoLjC330CbDkuTcYG/d/oNhU+gAD143Hx3qSFIFzftng1m6o\n\tNPkswxcq+DIyJUNVqC9dR2mvXw/zX34FYMCJi2/mAHwqADWQTOLqb+++cL6JTZi/8bwB\n\tUR8Q==","X-Gm-Message-State":"AOJu0Yyq4UkdI8CpJj25abcxd6GHFh+bN+gbkAyU2xdxBhs7nIWeUXNL\n\tZd4HTm/1dBv3WKAh6xPdm6c7flxYX0AwlwrqMsiRobnOiNMxlVcD0U4Hp0ibDpqtfaUdepVl/XM\n\tHQ/WHt25QFPLiK8tGYnM8ZBLPMhy1F3yusg==","X-Received":["by 2002:a17:906:eb5a:b0:a1d:2739:7772 with SMTP id\n\tmc26-20020a170906eb5a00b00a1d27397772mr3554952ejb.147.1702417126004; \n\tTue, 12 Dec 2023 13:38:46 -0800 (PST)","by 2002:a17:906:eb5a:b0:a1d:2739:7772 with SMTP id\n\tmc26-20020a170906eb5a00b00a1d27397772mr3554939ejb.147.1702417125589; \n\tTue, 12 Dec 2023 13:38:45 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IFma767gSHJU9n9JiKI3kW7xLy48xn5gk4UK8w/njvTaeEKFSaZAwAQaTI7vWZkDA9qdHE4Ug==","Message-ID":"<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","Date":"Tue, 12 Dec 2023 22:38:43 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Pavel Machek <pavel@ucw.cz>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>","In-Reply-To":"<ZXiMNSek6vsOi4tA@duo.ucw.cz>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Hans de Goede via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Hans de Goede <hdegoede@redhat.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28309,"web_url":"https://patchwork.libcamera.org/comment/28309/","msgid":"<ZXjd/iTg7653kv07@duo.ucw.cz>","date":"2023-12-12T22:26:06","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":49,"url":"https://patchwork.libcamera.org/api/people/49/","name":"Pavel Machek","email":"pavel@ucw.cz"},"content":"Hi!\n\n> > One day we may have SwIspGPU or maybe SwIspIntelMMX, so that support\n> > might be worth keeping.\n> \n> Right, so about having multiple SoftwareIsp implementations.\n> \n> I have been working on stasistics + debayer\n> base classes and CPU implementations of both based on refactoring\n> Andrey's work.\n> \n> I was hoping to have a clean branch with these ready but\n> getting them in shape took longer then I hoped.\n> \n> Stil I would like to share what I have now before tomorrows\n> SoftwareIsp video call / meeting.\n\nThank you, already noticed new branch in git and was browsing :-).\n\nIs there way I could join the video call?\n\nBest regards,\n\t\t\t\t\t\t\t\tPavel","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 68463BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 22:26:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BBEFC62B32;\n\tTue, 12 Dec 2023 23:26:08 +0100 (CET)","from jabberwock.ucw.cz (jabberwock.ucw.cz [46.255.230.98])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0BC8D629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 23:26:08 +0100 (CET)","by jabberwock.ucw.cz (Postfix, from userid 1017)\n\tid 5F4B71C006F; Tue, 12 Dec 2023 23:26:07 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702419968;\n\tbh=ex/IEYbBdx2+HvGiGdVV1g3R8W31Md8cqg73moms59M=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=xx4SptgGpwClc+pZTJFSEtzrO/tFjwDw+vKw1HCctDwO52RYSwnzUYBO9kgyXTSGS\n\t6xWK0UEiH/xkOmJ/xkmITzDjB/tyCfA+iLKbP+qA0rR+oLe+5rba05+AQUUuMwuLlZ\n\tb9ZVnXJCMuqLARzbR2AU1SuK/7vsp/WNpfoGMoG3weeMfBHmUePNzF4+0DG0JOt6uI\n\tPYEBNno3Ca//YfCaztkrpEJDL0B3ygTuEuPKB/O79ScDD+qEOkiOPWt2kBWZfTHFbe\n\tmoUBaMyCcwE/7QNfpY+tpDy2TQ54C7fOwctY40n6dorc14B5lTRulHgtRJPbxlJoSX\n\tnkpy4KoUaEc/A==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1;\n\tt=1702419967;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=La9kQ1MENZoP9WIsC4Ro+quMfoKVUTCvhxRH911lF8c=;\n\tb=Zu549qeXij55Qhj2J9sKOElp3xzakRGd66tTllBxQtB9gYSGQJGjqJrVNjpHaaYt049dnC\n\trdQkf/d3ltXZjIau1PgXf9uNZ/0HWmrKvLwHHhbFfQbHJwaBjCr5ixBQdhEVhemtMD3/yD\n\tZTCGkulDesjo8sahN6C5bMatfv8PHwI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ucw.cz header.i=@ucw.cz\n\theader.b=\"Zu549qeX\"; dkim-atps=neutral","Date":"Tue, 12 Dec 2023 23:26:06 +0100","To":"Hans de Goede <hdegoede@redhat.com>","Message-ID":"<ZXjd/iTg7653kv07@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tprotocol=\"application/pgp-signature\"; boundary=\"2rhWzWILRqA3Lz9J\"","Content-Disposition":"inline","In-Reply-To":"<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Pavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Pavel Machek <pavel@ucw.cz>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28310,"web_url":"https://patchwork.libcamera.org/comment/28310/","msgid":"<ZXlfvoW_21cyJAfX@amd.ucw.cz>","date":"2023-12-13T07:39:46","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":49,"url":"https://patchwork.libcamera.org/api/people/49/","name":"Pavel Machek","email":"pavel@ucw.cz"},"content":"Hi!\n\n> ATM the statistics and debayer classes are mostly ready,\n> but I need to merge this with Andrey's v2 RFC and\n> then produce a clean new series from this\n> (assuming people like the approach).\n\nOk, what about this one? I only converted half of the code, but the\nother half of conversion should be very similar.\n\nCompile-tested only as my sensor is bayer 8.\n\nIt makes it easier to see how we are skipping the low bits in 10P\nbayer, and will make bayer 8 support easier, too, since the pixel_XXX\nhelpers are designed to be shared.\n\nBest regards,\n\t\t\t\t\t\t\t\tPavel\n\ndiff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp\nindex 97ab6c14..a340e500 100644\n--- a/src/libcamera/software_isp/debayer_cpu.cpp\n+++ b/src/libcamera/software_isp/debayer_cpu.cpp\n@@ -29,13 +29,37 @@ DebayerCpu::DebayerCpu(std::unique_ptr<SwStatsLinaro> stats)\n \t\tgreen_[i] = i;\n }\n \n+struct ctxt {\n+\t/* Pointers to previous, current and next lines */\n+\tconst uint8_t *prev;\n+\tconst uint8_t *curr;\n+\tconst uint8_t *next;\n+\n+\t/* Pointers to gamma correction tables */\n+\tconst uint8_t *red;\n+\tconst uint8_t *green;\n+\tconst uint8_t *blue;\n+};\n+  \n+static inline void pixel_bggr(const struct ctxt &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[c.curr[x]];\n+\t*dst++ = c.green[(c.prev[x] + c.curr[x - p] + c.curr[x + p] + c.next[x]) / 4];\n+\t*dst++ = c.red[(c.prev[x - p] + c.prev[x + n] + c.next[x - p]  + c.next[x + n]) / 4];\n+}\n+\n+static inline void pixel_gbrg(const struct ctxt &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[(c.curr[x - p] + c.curr[x + n]) / 2];\n+\t*dst++ = c.green[c.curr[x]];\n+\t*dst++ = c.red[(c.prev[x] + c.next[x]) / 2];\n+}\n+\n void DebayerCpu::debayerBGGR10PLine0(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputStride_;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputStride_;\n+\tstruct ctxt c = { src - inputStride_, src, src + inputStride_,\n+\t\t\t  red_, green_, blue_ };\n \n \t/*\n \t * For the first pixel getting a pixel from the previous column uses\n@@ -49,9 +73,7 @@ void DebayerCpu::debayerBGGR10PLine0(uint8_t *dst, const uint8_t *src)\n \t\t *                       RGR\n \t\t * Write BGR\n \t\t */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 2] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 2] + prev[x + 1] + next[x - 2]  + next[x + 1]) / 4];\n+\t\tpixel_bggr(c, dst, x, 2, 1);\n \t\tx++;\n \n \t\t/*\n@@ -60,20 +82,14 @@ void DebayerCpu::debayerBGGR10PLine0(uint8_t *dst, const uint8_t *src)\n \t\t *                      GRG\n \t\t * Write BGR\n \t\t */\n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n+\t\tpixel_gbrg(c, dst, x, 1, 1);\n \t\tx++;\n \n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 1] + next[x - 1]  + next[x + 1]) / 4];\n+\t\tpixel_bggr(c, dst, x, 1, 1);\n \t\tx++;\n \n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 2]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n+\t\tpixel_gbrg(c, dst, x, 1, 2);\n \t}\n }\n \n@@ -123,10 +139,8 @@ void DebayerCpu::debayerBGGR10PLine1(uint8_t *dst, const uint8_t *src)\n void DebayerCpu::debayerGBRG10PLine0(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputStride_;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputStride_;\n+\tstruct ctxt c = { src - inputStride_, src, src + inputStride_,\n+\t\t\t  red_, green_, blue_ };\n \n \tfor (int x = 0; x < width_in_bytes; x += 2) {\n \t\t/*\n@@ -135,9 +149,7 @@ void DebayerCpu::debayerGBRG10PLine0(uint8_t *dst, const uint8_t *src)\n \t\t *                       GRG\n \t\t * Write BGR\n \t\t */\n-\t\t*dst++ = blue_[(curr[x - 2] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n+\t\tpixel_gbrg(c, dst, x, 2, 1);\n \t\tx++;\n \n \t\t/*\n@@ -146,20 +158,14 @@ void DebayerCpu::debayerGBRG10PLine0(uint8_t *dst, const uint8_t *src)\n \t\t *                      RGR\n \t\t * Write BGR\n \t\t */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 1] + next[x - 1]  + next[x + 1]) / 4];\n+\t\tpixel_bggr(c, dst, x, 1, 1);\n \t\tx++;\n \n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n+\t\tpixel_gbrg(c, dst, x, 1, 1);\n \t\tx++;\n \n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 2] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 2] + next[x - 1]  + next[x + 2]) / 4];\n+\t\tpixel_bggr(c, dst, x, 1, 2);\n \t}\n }","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 2D8CFBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Dec 2023 07:39:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6810462B32;\n\tWed, 13 Dec 2023 08:39:49 +0100 (CET)","from jabberwock.ucw.cz (jabberwock.ucw.cz [46.255.230.98])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 82D0661D92\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 08:39:47 +0100 (CET)","by jabberwock.ucw.cz (Postfix, from userid 1017)\n\tid BB7E81C006F; Wed, 13 Dec 2023 08:39:46 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702453189;\n\tbh=5gsDvaOyZZRzsrn9VuMoUb8m5JJIf76pqwAdHdoMxp8=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=I8+KbqR00b/V4tnsAcCh46uDfI0oKnikOtL5nGTd5tTtOpzsbajDf/5Kcb4O3u7W1\n\t6YAJlV9d1EP2citptt31FglGGeJ/3crEh9tTKMaJfmo/jGyMjJ0XU1C25V0Iz04Ddy\n\tcvoD2gK7SmIH2ygBJBaBtHXAbZCVjh4QMd0sozEm/SE7QStRDEqCdIJs+VVyXupsML\n\t5Vxeh3CJmX9zUbDIcfxAYZpZ46ZUe53bVi60dpynzieAQ1xWqzrxT+B1aWXcNPHA6A\n\tiqrfAk/JCH+/SYCb9E3UL/CmPgRfnFWMgsXo92kCX7nZ6E1HrA1dLoKTMDeV/uawnK\n\tyEVZzgS7RFdXA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1;\n\tt=1702453186;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=PmUj257m4Xr75GDHwsSUPm+kZY4VEQDuP48O5h1PMug=;\n\tb=jcCupmGw/GlqUAzbqRi1TCn/tznuKdKE3hroE7BHohRJF3nZOfBFWzOHcaNBzoVV6ZQH48\n\tGM8leFJVWnE1QiFQ05792XJ+gJM6Sco9/dB07ocZHTLnTC7Wg6XJcG27/6w2/seannWhNW\n\tMxLx95TA9dyTgE2b39+NaR/jC6tOjsk="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ucw.cz header.i=@ucw.cz\n\theader.b=\"jcCupmGw\"; dkim-atps=neutral","Date":"Wed, 13 Dec 2023 08:39:46 +0100","To":"Hans de Goede <hdegoede@redhat.com>","Message-ID":"<ZXlfvoW_21cyJAfX@amd.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tprotocol=\"application/pgp-signature\"; boundary=\"SuQNsBgL4Y3zwNbf\"","Content-Disposition":"inline","In-Reply-To":"<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Pavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Pavel Machek <pavel@ucw.cz>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28311,"web_url":"https://patchwork.libcamera.org/comment/28311/","msgid":"<1b6e3b17-14ab-47f8-a984-af387440631e@linaro.org>","date":"2023-12-13T09:51:29","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 12/12/2023 22:26, Pavel Machek wrote:\n> Hi!\n> \n>>> One day we may have SwIspGPU or maybe SwIspIntelMMX, so that support\n>>> might be worth keeping.\n>>\n>> Right, so about having multiple SoftwareIsp implementations.\n>>\n>> I have been working on stasistics + debayer\n>> base classes and CPU implementations of both based on refactoring\n>> Andrey's work.\n>>\n>> I was hoping to have a clean branch with these ready but\n>> getting them in shape took longer then I hoped.\n>>\n>> Stil I would like to share what I have now before tomorrows\n>> SoftwareIsp video call / meeting.\n> \n> Thank you, already noticed new branch in git and was browsing :-).\n> \n> Is there way I could join the video call?\n> \n> Best regards,\n> \t\t\t\t\t\t\t\tPavel\n\nAdded you to the invitee list.\n\n---\nbod","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 4CA15C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Dec 2023 09:51:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8A6F462B2A;\n\tWed, 13 Dec 2023 10:51:33 +0100 (CET)","from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com\n\t[IPv6:2a00:1450:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F11361D96\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 10:51:31 +0100 (CET)","by mail-wm1-x32b.google.com with SMTP id\n\t5b1f17b1804b1-40c236624edso66504855e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 01:51:31 -0800 (PST)","from [192.168.100.102] ([37.228.218.3])\n\tby smtp.gmail.com with ESMTPSA id\n\tl6-20020a05600c4f0600b0040b45282f88sm21868295wmq.36.2023.12.13.01.51.29\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 13 Dec 2023 01:51:30 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702461093;\n\tbh=ay6d8U3GBi9oSBeVGQFUagDqA3OJldkBrA2pY/1XMQ4=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=T0x+np8ycav6qBtzUeEKSX++Oqb68PgcJd5aDJDgq9dQ3Vdd+AvtFb5mD7J4yjr0T\n\tsN7sfJqv1no3f1Fq7I7Pc/mgS9Kx2TRLRF2TKDL12Tz0UjvNwT68wmQ/VVXgCWOOr4\n\tbG3/sjcZMJZOx+kt+ySW7m608BJ56MnUqF0mL6rD8KJb6LYuC2VDABb/tuwXtCw3RW\n\tN60/WdlhQblJhlk3pv5S6exDWDK+jpwtDDFyzpadO/Y609prwhdqprinRfvqzEA9Io\n\tM39R4wPkLj7O+ZBnHu9k3r/MsnQp3LViPoa6TbjuqKosM1dOWxtACXKsvGaAGRHu2a\n\tkWOKT7E6JemyQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1702461091; x=1703065891;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:references:cc:to\n\t:content-language:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=TJyOZ9GVE4lxX2yqXpEl870OvuTSluZcGwawUH0+P7g=;\n\tb=GCdOP11rseH3mKvod6BNCatKT0z69y1S+oUlvHVzrJ0muxiHOV5mzToNKmAZWd53XZ\n\tZimFLLwHyiPUkO8j8bx80fbO9cgAbhPEr+yJJ6ymPFOjpZAf6q0owYuRCJtkXwSJkQ+r\n\tqk1VbiKvPZShTUI9aHXpVojVRUcX9czV1i8kA/5bT7QFRFCtqsfGLpG3hcKOJHSjJXQF\n\tVeMgqMyZ1yZGxjleHkjTGyETD8pDhiwBzVJMUUEOE4DgiUO88QeTCwYoEND9My7mSuZj\n\tq69vcVo0vKL0W86JpDEh56SBV93Eu/+CYLO3HqmZb5yGoe0DwjCHnOgCqSqVt+og9wTw\n\tRJVg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"GCdOP11r\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702461091; x=1703065891;\n\th=content-transfer-encoding:in-reply-to:from:references:cc:to\n\t:content-language: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=TJyOZ9GVE4lxX2yqXpEl870OvuTSluZcGwawUH0+P7g=;\n\tb=o+drcUINeI+6xpWVCnGmhkBradB9g/G7pkv4PH02ZOO50K+5xLvH3K+TrnXclb8Cux\n\tLWfWu1dlNfTVeEGANtndaNcQVsQZ6uKxBxRiwn+9uprjY+lwfQ6/GKxXcj+ZNb/2wUlg\n\tlKrd4+3A6cR9tKX8vvVjA8zvDjFxO88mULDdzUbZiyX+gplQ2ddLWm4tWo9rwRFikwiC\n\t3UFS0ap+jFJuQ/16+JruaqEowpu21RKMDgj7qKeUJ9E5TDaEGOfgQgcsXlrwTIncYXqj\n\t1x/QXcVW34+4BCiTmKK+mygmYoS8wO+IBKZDhHDAhU1YraGbN4FayLZOcn1WVMe+MYmE\n\tvzmg==","X-Gm-Message-State":"AOJu0YyNrP6TbzTbLYEZGfzIe0Qq/ZhtQjEoHYjrfNkJvC77tapfQbfq\n\thxz1/XPE9e/WLtI4NBT1k3BwAg==","X-Google-Smtp-Source":"AGHT+IFdLuwe2J6y0gd9Zy+4BsuTd4OOAStecd6H6ydxeAn/H9aTG3cubkXDTPRdb/grDfFMX2cncg==","X-Received":"by 2002:a05:600c:4f11:b0:40b:5e21:cc29 with SMTP id\n\tl17-20020a05600c4f1100b0040b5e21cc29mr3812033wmq.84.1702461090761; \n\tWed, 13 Dec 2023 01:51:30 -0800 (PST)","Message-ID":"<1b6e3b17-14ab-47f8-a984-af387440631e@linaro.org>","Date":"Wed, 13 Dec 2023 09:51:29 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Content-Language":"en-US","To":"Pavel Machek <pavel@ucw.cz>, Hans de Goede <hdegoede@redhat.com>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>\n\t<ZXjd/iTg7653kv07@duo.ucw.cz>","In-Reply-To":"<ZXjd/iTg7653kv07@duo.ucw.cz>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Bryan O'Donoghue via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, admin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28314,"web_url":"https://patchwork.libcamera.org/comment/28314/","msgid":"<2382c83d-e5e6-478c-b0e8-ed10e8c26ab6@redhat.com>","date":"2023-12-13T20:35:56","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi Pavel,\n\nOn 12/13/23 08:39, Pavel Machek wrote:\n> Hi!\n> \n>> ATM the statistics and debayer classes are mostly ready,\n>> but I need to merge this with Andrey's v2 RFC and\n>> then produce a clean new series from this\n>> (assuming people like the approach).\n> \n> Ok, what about this one? I only converted half of the code, but the\n> other half of conversion should be very similar.\n> \n> Compile-tested only as my sensor is bayer 8.\n> \n> It makes it easier to see how we are skipping the low bits in 10P\n> bayer, and will make bayer 8 support easier, too, since the pixel_XXX\n> helpers are designed to be shared.\n\nI have merged a variant of this with:\n\n1. The missing bits completed\n2. Various renames to make it clear that the helpers are for 8bit bayer\n   sources (we are treating 10bpp packed as 8 bit here) and that\n   the output is bgr888 this should make life easier when adding\n   support for more input / output fmts.\n\nHere is what I've merged / squashed:\n\nFrom 9e7bd0f37c38bf9500924187720621538f4581da Mon Sep 17 00:00:00 2001\nFrom: Hans de Goede <hdegoede@redhat.com>\nDate: Wed, 13 Dec 2023 19:19:11 +0100\nSubject: [PATCH] Pavel debayer changes\n\nSigned-off-by: Hans de Goede <hdegoede@redhat.com>\n---\n .../internal/software_isp/debayer_cpu.h       |   8 +-\n src/libcamera/software_isp/debayer_cpu.cpp    | 247 +++++++-----------\n 2 files changed, 97 insertions(+), 158 deletions(-)\n\ndiff --git a/include/libcamera/internal/software_isp/debayer_cpu.h b/include/libcamera/internal/software_isp/debayer_cpu.h\nindex 89824851..7fb5be77 100644\n--- a/include/libcamera/internal/software_isp/debayer_cpu.h\n+++ b/include/libcamera/internal/software_isp/debayer_cpu.h\n@@ -62,10 +62,10 @@ private:\n \tvoid process2(const uint8_t *src, uint8_t *dst);\n \tvoid process4(const uint8_t *src, uint8_t *dst);\n \t/* CSI-2 packed 10-bit raw bayer format (all the 4 orders) */\n-\tvoid debayerBGGR10PLine0(uint8_t *dst, const uint8_t *src);\n-\tvoid debayerBGGR10PLine1(uint8_t *dst, const uint8_t *src);\n-\tvoid debayerGBRG10PLine0(uint8_t *dst, const uint8_t *src);\n-\tvoid debayerGBRG10PLine1(uint8_t *dst, const uint8_t *src);\n+\tvoid debayer10P_BGBG_BGR888(uint8_t *dst, const uint8_t *src);\n+\tvoid debayer10P_GRGR_BGR888(uint8_t *dst, const uint8_t *src);\n+\tvoid debayer10P_GBGB_BGR888(uint8_t *dst, const uint8_t *src);\n+\tvoid debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src);\n \n \ttypedef void (DebayerCpu::*debayerFn)(uint8_t *dst, const uint8_t *src);\n \ndiff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp\nindex b6ed12de..3eacdd5d 100644\n--- a/src/libcamera/software_isp/debayer_cpu.cpp\n+++ b/src/libcamera/software_isp/debayer_cpu.cpp\n@@ -29,180 +29,121 @@ DebayerCpu::DebayerCpu(std::unique_ptr<SwStatsCpu> stats)\n \t\tgreen_[i] = i;\n }\n \n-void DebayerCpu::debayerBGGR10PLine0(uint8_t *dst, const uint8_t *src)\n+struct ctxt_8bit_src {\n+\t/* Pointers to previous, current and next lines */\n+\tconst uint8_t *prev;\n+\tconst uint8_t *curr;\n+\tconst uint8_t *next;\n+\n+\t/* Pointers to gamma correction tables */\n+\tconst uint8_t *red;\n+\tconst uint8_t *green;\n+\tconst uint8_t *blue;\n+};\n+\n+static inline void bggr8_bgr888(const struct ctxt_8bit_src &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[c.curr[x]];\n+\t*dst++ = c.green[(c.prev[x] + c.curr[x - p] + c.curr[x + n] + c.next[x]) / 4];\n+\t*dst++ = c.red[(c.prev[x - p] + c.prev[x + n] + c.next[x - p]  + c.next[x + n]) / 4];\n+}\n+\n+static inline void grbg8_bgr888(const struct ctxt_8bit_src &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[(c.prev[x] + c.next[x]) / 2];\n+\t*dst++ = c.green[c.curr[x]];\n+\t*dst++ = c.red[(c.curr[x - p] + c.curr[x + n]) / 2];\n+}\n+\n+static inline void gbrg8_bgr888(const struct ctxt_8bit_src &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[(c.curr[x - p] + c.curr[x + n]) / 2];\n+\t*dst++ = c.green[c.curr[x]];\n+\t*dst++ = c.red[(c.prev[x] + c.next[x]) / 2];\n+}\n+\n+static inline void rggb8_bgr888(const struct ctxt_8bit_src &c, uint8_t *&dst, int x, int p, int n)\n+{\n+\t*dst++ = c.blue[(c.prev[x - p] + c.prev[x + n] + c.next[x - p]  + c.next[x + n]) / 4];\n+\t*dst++ = c.green[(c.prev[x] + c.curr[x - p] + c.curr[x + n] + c.next[x]) / 4];\n+\t*dst++ = c.red[c.curr[x]];\n+}\n+\n+void DebayerCpu::debayer10P_BGBG_BGR888(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputConfig_.stride;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputConfig_.stride;\n+\tstruct ctxt_8bit_src c = {\n+\t\tsrc - inputConfig_.stride, src, src + inputConfig_.stride,\n+\t\tred_, green_, blue_ };\n \n \t/*\n \t * For the first pixel getting a pixel from the previous column uses\n \t * x - 2 to skip the 5th byte with least-significant bits for 4 pixels.\n \t * Same for last pixel (uses x + 2) and looking at the next column.\n+\t * x++ in the for-loop skips the 5th byte with 4 x 2 lsb-s for 10bit packed.\n \t */\n-\tfor (int x = 0; x < width_in_bytes; x += 2) {\n-\t\t/*\n-\t\t * BGBG line even pixel: RGR\n-\t\t *                       GBG\n-\t\t *                       RGR\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 2] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 2] + prev[x + 1] + next[x - 2]  + next[x + 1]) / 4];\n-\t\tx++;\n-\n-\t\t/*\n-\t\t * BGBG line odd pixel: GRG\n-\t\t *                      BGB\n-\t\t *                      GRG\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n-\t\tx++;\n-\n+\tfor (int x = 0; x < width_in_bytes; x++) {\n+\t\t/* Even pixel */\n+\t\tbggr8_bgr888(c, dst, x++, 2, 1);\n+\t\t/* Odd pixel BGGR -> GBRG */\n+\t\tgbrg8_bgr888(c, dst, x++, 1, 1);\n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 1] + next[x - 1]  + next[x + 1]) / 4];\n-\t\tx++;\n-\n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 2]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n+\t\tbggr8_bgr888(c, dst, x++, 1, 1);\n+\t\tgbrg8_bgr888(c, dst, x++, 1, 2);\n \t}\n }\n \n-void DebayerCpu::debayerBGGR10PLine1(uint8_t *dst, const uint8_t *src)\n+void DebayerCpu::debayer10P_GRGR_BGR888(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputConfig_.stride;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputConfig_.stride;\n-\n-\tfor (int x = 0; x < width_in_bytes; x += 2) {\n-\t\t/*\n-\t\t * GRGR line even pixel: GBG\n-\t\t *                       RGR\n-\t\t *                       GBG\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(prev[x] + next[x]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(curr[x - 2] + curr[x + 1]) / 2];\n-\t\tx++;\n-\n-\t\t/*\n-\t\t * GRGR line odd pixel: BGB\n-\t\t *                      GRG\n-\t\t *                      BGB\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(prev[x - 1] + prev[x + 1] + next[x - 1] + next[x + 1]) / 4];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[curr[x]];\n-\t\tx++;\n+\tstruct ctxt_8bit_src c = {\n+\t\tsrc - inputConfig_.stride, src, src + inputConfig_.stride,\n+\t\tred_, green_, blue_ };\n \n+\tfor (int x = 0; x < width_in_bytes; x++) {\n+\t\t/* Even pixel */\n+\t\tgrbg8_bgr888(c, dst, x++, 2, 1);\n+\t\t/* Odd pixel GRBG -> RGGB */\n+\t\trggb8_bgr888(c, dst, x++, 1, 1);\n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[(prev[x] + next[x]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\tx++;\n-\n-\t\t*dst++ = blue_[(prev[x - 1] + prev[x + 2] + next[x - 1] + next[x + 2]) / 4];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 2] + next[x]) / 4];\n-\t\t*dst++ = red_[curr[x]];\n+\t\tgrbg8_bgr888(c, dst, x++, 1, 1);\n+\t\trggb8_bgr888(c, dst, x++, 1, 2);\n \t}\n }\n \n-void DebayerCpu::debayerGBRG10PLine0(uint8_t *dst, const uint8_t *src)\n+void DebayerCpu::debayer10P_GBGB_BGR888(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputConfig_.stride;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputConfig_.stride;\n-\n-\tfor (int x = 0; x < width_in_bytes; x += 2) {\n-\t\t/*\n-\t\t * GBGB line even pixel: GRG\n-\t\t *                       BGB\n-\t\t *                       GRG\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(curr[x - 2] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n-\t\tx++;\n-\n-\t\t/*\n-\t\t * GBGB line odd pixel: RGR\n-\t\t *                      GBG\n-\t\t *                      RGR\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 1] + next[x - 1]  + next[x + 1]) / 4];\n-\t\tx++;\n+\tstruct ctxt_8bit_src c = {\n+\t\tsrc - inputConfig_.stride, src, src + inputConfig_.stride,\n+\t\tred_, green_, blue_ };\n \n+\tfor (int x = 0; x < width_in_bytes; x++) {\n+\t\t/* Even pixel */\n+\t\tgbrg8_bgr888(c, dst, x++, 2, 1);\n+\t\t/* Odd pixel GBGR -> BGGR */\n+\t\tbggr8_bgr888(c, dst, x++, 1, 1);\n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(prev[x] + next[x]) / 2];\n-\t\tx++;\n-\n-\t\t*dst++ = blue_[curr[x]];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 2] + next[x]) / 4];\n-\t\t*dst++ = red_[(prev[x - 1] + prev[x + 2] + next[x - 1]  + next[x + 2]) / 4];\n+\t\tgbrg8_bgr888(c, dst, x++, 1, 1);\n+\t\tbggr8_bgr888(c, dst, x++, 1, 2);\n \t}\n }\n \n-void DebayerCpu::debayerGBRG10PLine1(uint8_t *dst, const uint8_t *src)\n+void DebayerCpu::debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src)\n {\n \tconst int width_in_bytes = window_.width * 5 / 4;\n-\t/* Pointers to previous, current and next lines */\n-\tconst uint8_t *prev = src - inputConfig_.stride;\n-\tconst uint8_t *curr = src;\n-\tconst uint8_t *next = src + inputConfig_.stride;\n-\n-\tfor (int x = 0; x < width_in_bytes; x += 2) {\n-\t\t/*\n-\t\t * RGRG line even pixel: BGB\n-\t\t *                       GRG\n-\t\t *                       BGB\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(prev[x - 2] + prev[x + 1] + next[x - 2] + next[x + 1]) / 4];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 2] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[curr[x]];\n-\t\tx++;\n-\n-\t\t/*\n-\t\t * RGRG line odd pixel: GBG\n-\t\t *                      RGR\n-\t\t *                      GBG\n-\t\t * Write BGR\n-\t\t */\n-\t\t*dst++ = blue_[(prev[x] + next[x]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(curr[x - 1] + curr[x + 1]) / 2];\n-\t\tx++;\n+\tstruct ctxt_8bit_src c = {\n+\t\tsrc - inputConfig_.stride, src, src + inputConfig_.stride,\n+\t\tred_, green_, blue_ };\n \n+\tfor (int x = 0; x < width_in_bytes; x++) {\n+\t\t/* Even pixel */\n+\t\trggb8_bgr888(c, dst, x++, 2, 1);\n+\t\t/* Odd pixel RGGB -> GRBG*/\n+\t\tgrbg8_bgr888(c, dst, x++, 1, 1);\n \t\t/* Same thing for next 2 pixels */\n-\t\t*dst++ = blue_[(prev[x - 1] + prev[x + 1] + next[x - 1] + next[x + 1]) / 4];\n-\t\t*dst++ = green_[(prev[x] + curr[x - 1] + curr[x + 1] + next[x]) / 4];\n-\t\t*dst++ = red_[curr[x]];\n-\t\tx++;\n-\n-\t\t*dst++ = blue_[(prev[x] + next[x]) / 2];\n-\t\t*dst++ = green_[curr[x]];\n-\t\t*dst++ = red_[(curr[x - 1] + curr[x + 2]) / 2];\n+\t\trggb8_bgr888(c, dst, x++, 1, 1);\n+\t\tgrbg8_bgr888(c, dst, x++, 1, 2);\n \t}\n }\n \n@@ -258,22 +199,20 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat, [[maybe_unused]] Pi\n \t    bayerFormat.packing == BayerFormat::Packing::CSI2) {\n \t\tswitch (bayerFormat.order) {\n \t\tcase BayerFormat::BGGR:\n-\t\t\tdebayer0_ = &DebayerCpu::debayerBGGR10PLine0;\n-\t\t\tdebayer1_ = &DebayerCpu::debayerBGGR10PLine1;\n+\t\t\tdebayer0_ = &DebayerCpu::debayer10P_BGBG_BGR888;\n+\t\t\tdebayer1_ = &DebayerCpu::debayer10P_GRGR_BGR888;\n \t\t\treturn 0;\n \t\tcase BayerFormat::GBRG:\n-\t\t\tdebayer0_ = &DebayerCpu::debayerGBRG10PLine0;\n-\t\t\tdebayer1_ = &DebayerCpu::debayerGBRG10PLine1;\n+\t\t\tdebayer0_ = &DebayerCpu::debayer10P_GBGB_BGR888;\n+\t\t\tdebayer1_ = &DebayerCpu::debayer10P_RGRG_BGR888;\n \t\t\treturn 0;\n \t\tcase BayerFormat::GRBG:\n-\t\t\t/* GRBG is BGGR with the lines swapped */\n-\t\t\tdebayer0_ = &DebayerCpu::debayerBGGR10PLine1;\n-\t\t\tdebayer1_ = &DebayerCpu::debayerBGGR10PLine0;\n+\t\t\tdebayer0_ = &DebayerCpu::debayer10P_GRGR_BGR888;\n+\t\t\tdebayer1_ = &DebayerCpu::debayer10P_BGBG_BGR888;\n \t\t\treturn 0;\n \t\tcase BayerFormat::RGGB:\n-\t\t\t/* RGGB is GBRG with the lines swapped */\n-\t\t\tdebayer0_ = &DebayerCpu::debayerGBRG10PLine1;\n-\t\t\tdebayer1_ = &DebayerCpu::debayerGBRG10PLine0;\n+\t\t\tdebayer0_ = &DebayerCpu::debayer10P_RGRG_BGR888;\n+\t\t\tdebayer1_ = &DebayerCpu::debayer10P_GBGB_BGR888;\n \t\t\treturn 0;\n \t\tdefault:\n \t\t\tbreak;","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 0BA35BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Dec 2023 20:37:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 46CC962B32;\n\tWed, 13 Dec 2023 21:37:34 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E932B629DF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 21:37:31 +0100 (CET)","from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n\t[209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-306-doTZB4vwNtaf8isSEnAoPw-1; Wed, 13 Dec 2023 15:37:29 -0500","by mail-wm1-f70.google.com with SMTP id\n\t5b1f17b1804b1-40c49cb08fcso23604545e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 12:37:29 -0800 (PST)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\twb8-20020a170907d50800b00a1cb351dd4fsm8379879ejc.9.2023.12.13.12.35.57\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 13 Dec 2023 12:35:57 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702499854;\n\tbh=2xiVKWqbVs7uFEhez+rV6ej5S+t53ebUFxlBKBNsDgI=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=jTTjS/bMe/KG3Qzf7bMJ5L0l8t4cL2m+VhYBBW7+1rpO6ByiFDWZyVXZzBf+wrq0J\n\tffD/EWUEeb9ywCxdYZa/+52fSKG/eYmClEDb717nb2yYuw/ueub89vDmGHnPv0CVQZ\n\todTrG6JpuweTxKFUYZGEK0gKAX3pxl12XHz/zX6BE0hmxAWF+RHyosIn096MZhoM7E\n\tr8vyJRFI1cHvtrUFTTlAhqoVpEbklDuwMzZbfQG/VF7Yj4/WkBStQQRb5bwhrwtKp5\n\t9Ctedy+xZytL4+hbs/RKKThTsiApSUaRs4aesqyQaZP6zQpKPRwcyo6NuP8Ls688/n\n\tbQQscejGCsVvg==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1702499850;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=hTEzGq3u9nuyfGWYROXsHDAjXSQe9qLk30NicMiyUeE=;\n\tb=eyrtw8NuQdBID04JgHQgLM11/rOhpukwxwiizuUXbbkAiUVNcttOAmiofZHTkOq/P4XzMB\n\t9Ixql8mU9ifFIDxR3U6TkH2tMhk5hzIOng+iKuHLUDv03DyoSIqtH0a32uo2VVgcmMnyE0\n\tbckQF8lF09qCEPIwqOdnhV5hJa/jA8o="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"eyrtw8Nu\"; \n\tdkim-atps=neutral","X-MC-Unique":"doTZB4vwNtaf8isSEnAoPw-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702499848; x=1703104648;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc: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=hTEzGq3u9nuyfGWYROXsHDAjXSQe9qLk30NicMiyUeE=;\n\tb=rH9OAtWc/tYSbMx3LpudE1FG5qUvFS+V1/dQU43W1bnEbN8gVi/opK7tAv6ELS+ByZ\n\tTQHGHbxqNB/wtL+//kQVm9NoCSxG+FuK1nkyUTMQZAnx5RttManYOoheXTtrqRbj1TMu\n\tS4ZCR2np6m2xNez32O1ZvcUHZReXrQvNjP1y4PHojtBJ8p98J3g23TAr/SC/FamWWVAW\n\t8Qmw66M5bHaI+MpkrTX4zwjfzGIrBoXfTM+dUl7wHPR5KxQSiN21gJQqDj0s53INBfha\n\tRejSGjfgPWQ9d4kVYcaPnM+YPWQ3S4/FQ81yyI0Fk58PK5cfAVG8XFuN5dmlO6iz0QAf\n\tdVYQ==","X-Gm-Message-State":"AOJu0YwLy4uEKimxt+qv7eurrBREHGdQZDjmrHIz7l5UXM6tE5dKAG+1\n\tATJOqNl1LbuvbOWqIfcSoki1KA/07MghUdvAUIOZ9DJUlsRXuNTM/KMMbV/Stka72L+/msG6Lrj\n\tlQ2CoMXfL68Nj3LSHAHqTbLMGWG9QGnV/9w==","X-Received":["by 2002:a05:600c:26d3:b0:40c:3891:b0a2 with SMTP id\n\t19-20020a05600c26d300b0040c3891b0a2mr4266524wmv.178.1702499848150; \n\tWed, 13 Dec 2023 12:37:28 -0800 (PST)","by 2002:a05:600c:26d3:b0:40c:3891:b0a2 with SMTP id\n\t19-20020a05600c26d300b0040c3891b0a2mr4266516wmv.178.1702499847783; \n\tWed, 13 Dec 2023 12:37:27 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IHSQOw/J9ibShSOcYlkppGAipqYmZFSgTLXouuXWbC+1LCb/zeIpj3lmhwceHW1FKTAZe2VSg==","Message-ID":"<2382c83d-e5e6-478c-b0e8-ed10e8c26ab6@redhat.com>","Date":"Wed, 13 Dec 2023 21:35:56 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Pavel Machek <pavel@ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>\n\t<ZXlfvoW_21cyJAfX@amd.ucw.cz>","In-Reply-To":"<ZXlfvoW_21cyJAfX@amd.ucw.cz>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US, nl","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Hans de Goede via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Hans de Goede <hdegoede@redhat.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28316,"web_url":"https://patchwork.libcamera.org/comment/28316/","msgid":"<ZXof54XvxbdENhVb@duo.ucw.cz>","date":"2023-12-13T21:19:35","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":49,"url":"https://patchwork.libcamera.org/api/people/49/","name":"Pavel Machek","email":"pavel@ucw.cz"},"content":"Hi!\n\n> >> ATM the statistics and debayer classes are mostly ready,\n> >> but I need to merge this with Andrey's v2 RFC and\n> >> then produce a clean new series from this\n> >> (assuming people like the approach).\n> > \n> > Ok, what about this one? I only converted half of the code, but the\n> > other half of conversion should be very similar.\n> > \n> > Compile-tested only as my sensor is bayer 8.\n> > \n> > It makes it easier to see how we are skipping the low bits in 10P\n> > bayer, and will make bayer 8 support easier, too, since the pixel_XXX\n> > helpers are designed to be shared.\n> \n> I have merged a variant of this with:\n> \n> 1. The missing bits completed\n> 2. Various renames to make it clear that the helpers are for 8bit bayer\n>    sources (we are treating 10bpp packed as 8 bit here) and that\n>    the output is bgr888 this should make life easier when adding\n>    support for more input / output fmts.\n> \n> Here is what I've merged / squashed:\n\nThanks a lot, looks good to me!\n\nBest regards,\n\t\t\t\t\t\t\t\tPavel","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 4508EBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Dec 2023 21:19:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A9B8B62B2A;\n\tWed, 13 Dec 2023 22:19:37 +0100 (CET)","from jabberwock.ucw.cz (jabberwock.ucw.cz [46.255.230.98])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4B55B629DF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 22:19:36 +0100 (CET)","by jabberwock.ucw.cz (Postfix, from userid 1017)\n\tid 8496E1C006F; Wed, 13 Dec 2023 22:19:35 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702502377;\n\tbh=plqyMWvKLcA8+7adtC3NKFuJhq47v4hL0jMuvWN8AGw=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=i4GvwNFhf+teJK57rfiv/aORY2heC9S/vDXp8NEKqAT1zt9WAl71pM0tSWxf2zM/+\n\tx0ssotl5xGPQfymCR83YQe5QQPDifBMo7iKgcpD0zdffhrAgGkbY0hBUk8Nn8gSUIO\n\t2vJT9PxQFjyvXDF1EiePjt3HQId+C88tcwiJ4q9w20BykGmReDXx1s9bGzA593MAAr\n\tznNXUd3Oj007RsW9vvGq/aDY323gOnOZHBnfpGT5GXswErFG1GmZfXBYDU3UiFuStw\n\tyn89kN3yybL6bPkAyn1079MigwDX6ind97ffxf9+MetWKt3r7hsbsyx0rgf2tyBG/Z\n\tJxeIqvmnFfxLA==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1;\n\tt=1702502375;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=5yOJop2olCxNGj+OW1hKzaxUtDEETVBBB0n8dUamh/Q=;\n\tb=JJz1LHES/ziGUo1wZwidBG6j+zgYbivoLeoU0xLJHdMGCvVBb7A+667y6Gtl7Tyn5Ydoj4\n\tYMc35kUkD1YYQhdHzn61pyq8pIYLvwBqMh8wXqkRQVvoAmmjhHens04aJ+yK6UPjJv5fsc\n\tF+Mwt5jAxSjsZ1um+ywVc+NNj4H+ChE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ucw.cz header.i=@ucw.cz\n\theader.b=\"JJz1LHES\"; dkim-atps=neutral","Date":"Wed, 13 Dec 2023 22:19:35 +0100","To":"Hans de Goede <hdegoede@redhat.com>","Message-ID":"<ZXof54XvxbdENhVb@duo.ucw.cz>","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>\n\t<ZXlfvoW_21cyJAfX@amd.ucw.cz>\n\t<2382c83d-e5e6-478c-b0e8-ed10e8c26ab6@redhat.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha1;\n\tprotocol=\"application/pgp-signature\"; boundary=\"o3hIqdmmYdQFAJay\"","Content-Disposition":"inline","In-Reply-To":"<2382c83d-e5e6-478c-b0e8-ed10e8c26ab6@redhat.com>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Pavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Pavel Machek <pavel@ucw.cz>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tPavel Machek via libcamera-devel <libcamera-devel@lists.libcamera.org>, \n\tsrinivas.kandagatla@linaro.org, bryan.odonoghue@linaro.org,\n\tadmin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28318,"web_url":"https://patchwork.libcamera.org/comment/28318/","msgid":"<749eaf54-ed19-4d99-8c42-87516cbcca44@redhat.com>","date":"2023-12-13T21:54:11","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":102,"url":"https://patchwork.libcamera.org/api/people/102/","name":"Hans de Goede","email":"hdegoede@redhat.com"},"content":"Hi all,\n\nOn 12/12/23 22:38, Hans de Goede wrote:\n\n<snip>\n\n> Anyways if you have time, please take a look\n> at the swstats base class + linaro implementation\n> as well as at the debayer base class as well\n> as the DebayerCpu implementation of that:\n> \n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/tree/SoftwareISP-v02-hans2\n> \n> Which are the last few commits there.\n> \n> Note as I already mentioned I really need to merge\n> this with Andrey's latest v03 branch into a new\n> logical clean patch series suitable for upstream submission.\n\nAnd as promised during our call today I now have\na new v03 based branch ready integrating my\nput swstats and debayer into separate classes\nwork (with the more optimized implementations):\n\nhttps://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v03-hans1/\n\nThe big change compared to Andrey's SoftwareISP-v03 /\nRFC v2 posting is:\n\n\"libcamera: software_isp: Make swisp_linaro use the new DebayerCpu class \"\n\nAndrey, if you can take a look at this and let me know if those\nchanges are ok with you that would be great.\n\nThe intend is to squash \"Make swisp_linaro use the new DebayerCpu class\"\ninto the patch adding swisp_linaro before submitting a new series\nupstream.\n\nAfter the squashing the only item remaining before posting\na new version upstream is renaming things away from using\nthe linaro name for the current swisp and softipa implementations,\nI will do this rename tomorrow.\n\nRegards,\n\nHans","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 A0F65BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 13 Dec 2023 21:54:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0F11F62B32;\n\tWed, 13 Dec 2023 22:54:19 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4CADA629DF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 22:54:17 +0100 (CET)","from mail-ej1-f69.google.com (mail-ej1-f69.google.com\n\t[209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-206-NqsBYGELNsKvRYbxHHZwxA-1; Wed, 13 Dec 2023 16:54:14 -0500","by mail-ej1-f69.google.com with SMTP id\n\ta640c23a62f3a-a1d7df84935so434324666b.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 13 Dec 2023 13:54:14 -0800 (PST)","from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec?\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\trd12-20020a170907a28c00b00a11b2677acbsm8352398ejc.163.2023.12.13.13.54.12\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 13 Dec 2023 13:54:12 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702504459;\n\tbh=o885tcuIbrr/FEFMaDh/ix3N55QW+OYAYez4cx2OrlE=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=wjDjtFXbswNSplxaP8j3++bOI1T8oVJrbvXOM6IRUD1j8lUQMQEwxCc/oS1Ln3D+T\n\tpmMn1MEFH2dOdeNZJ6N3BuRmlsGyjd0kBSm0wHxanrdblreteCRC9Rs5VT5ycR6Ip7\n\tQqJhLEk3ebUMXALtTYYJOgmzS3U81OQ+h/+QkDK+EO7LoZbDGUTBxP3rRO/Z+D4Q6v\n\tLOCez2/9eO4KIo/iBQyP5Q4MY9SI6TKbX5QS3uh7zTRMwZpiMkuC0Van5+/Xg2uF8U\n\tHcDE6zQI3OkqmnlmMpvQ90jCokdJiAXaZaL+l4GpZF+EiG/Xueo/z2zHVlqv6CWKTB\n\tZXx1wpR8S9aIQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1702504456;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=uSpPBL953yq3vUkFrxoA25v3ujJv9VYq6to1HTgooEY=;\n\tb=OQuS8KlSyLQiNSQTWGk5d4UvAHYuRPXJ7EeKHyLU7cNQrwi9hUd3e84Umx10PVqJMBneju\n\tSSTwphmYVaQxj3fSq+Be7YAPBZQVjqvuWFLZ3sSZPVl+d9LT6ZknFAPr09Jcttw8nKTp6N\n\tGbc3ui44B+5cbeig0zFQxHrShHsopG8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"OQuS8KlS\"; \n\tdkim-atps=neutral","X-MC-Unique":"NqsBYGELNsKvRYbxHHZwxA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702504453; x=1703109253;\n\th=content-transfer-encoding:in-reply-to:content-language:references\n\t:cc:to:from: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=uSpPBL953yq3vUkFrxoA25v3ujJv9VYq6to1HTgooEY=;\n\tb=lLtIqPNqSO7k+OYmMWCBl0hUSBrtcq+s9xlpncv8tl6e24442TvtICIck4hfi3RhI7\n\tq0xDCpIn3qGWb7TwoayiH/1e17zTBvn4yJ6iEUi6W7UYxqM5opgOWSXfynUxjEhhWcL9\n\tvtCaaFNdIvAfGrQ2PhKK1YzFx7aPsUJSW12V47CZg3LiCD7dhwdWKV2YThpl1SPravfq\n\tQi1cs/ysXLWyCVpRJFUfM820yAxyZAI+fjKO2bFTmKbARh1NEiyyN2pfTjrRWbyjKWSm\n\tHvgJfw8q+1dgt/hIjhKSAGWopN+25w3Rw79JpRGArQ918VdXpXGGyE9SFd7UnYX+A6LQ\n\tn2bQ==","X-Gm-Message-State":"AOJu0YwU58CDT3ebL+xPCIjHgE2RQ4szs+5O1hLQJKooux5HduWv7FQ0\n\tOOZN3bL5Q/Ugd6wWT8sJebpg+jgG+PtQU3IfVj/k64nvPSeESlihRnuRBk91X1fVgFRz+aIloLr\n\t8+F3YAkWevE0cTi5MynQeUuulyAlVbkD0ZG/IflI9kQ==","X-Received":["by 2002:a17:907:d9e:b0:a19:b93c:d294 with SMTP id\n\tgo30-20020a1709070d9e00b00a19b93cd294mr4216532ejc.78.1702504453495; \n\tWed, 13 Dec 2023 13:54:13 -0800 (PST)","by 2002:a17:907:d9e:b0:a19:b93c:d294 with SMTP id\n\tgo30-20020a1709070d9e00b00a19b93cd294mr4216524ejc.78.1702504453193; \n\tWed, 13 Dec 2023 13:54:13 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IFBZQbe4sq4aDqFOz9dO4iyehB+6x8QJc7Kzwj59VQ/DImJIxgydbX5co31LeZlabGwf/95pw==","Message-ID":"<749eaf54-ed19-4d99-8c42-87516cbcca44@redhat.com>","Date":"Wed, 13 Dec 2023 22:54:11 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Pavel Machek <pavel@ucw.cz>,\n\tAndrey Konovalov <andrey.konovalov@linaro.org>,\n\tbryan.odonoghue@linaro.org","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","In-Reply-To":"<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US, nl","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Hans de Goede via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Hans de Goede <hdegoede@redhat.com>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tlibcamera-devel <libcamera-devel@lists.libcamera.org>,\n\tsrinivas.kandagatla@linaro.org, admin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28319,"web_url":"https://patchwork.libcamera.org/comment/28319/","msgid":"<ab112c01-ad00-4c6f-b288-00357c84edd2@linaro.org>","date":"2023-12-14T08:56:51","subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","submitter":{"id":25,"url":"https://patchwork.libcamera.org/api/people/25/","name":"Andrey Konovalov","email":"andrey.konovalov@linaro.org"},"content":"Hi Hans,\n\nOn 14.12.2023 00:54, Hans de Goede wrote:\n> Hi all,\n> \n> On 12/12/23 22:38, Hans de Goede wrote:\n> \n> <snip>\n> \n>> Anyways if you have time, please take a look\n>> at the swstats base class + linaro implementation\n>> as well as at the debayer base class as well\n>> as the DebayerCpu implementation of that:\n>>\n>> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/tree/SoftwareISP-v02-hans2\n>>\n>> Which are the last few commits there.\n>>\n>> Note as I already mentioned I really need to merge\n>> this with Andrey's latest v03 branch into a new\n>> logical clean patch series suitable for upstream submission.\n> \n> And as promised during our call today I now have\n> a new v03 based branch ready integrating my\n> put swstats and debayer into separate classes\n> work (with the more optimized implementations):\n> \n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/SoftwareISP-v03-hans1/\n> \n> The big change compared to Andrey's SoftwareISP-v03 /\n> RFC v2 posting is:\n> \n> \"libcamera: software_isp: Make swisp_linaro use the new DebayerCpu class\"\n> \n> Andrey, if you can take a look at this and let me know if those\n> changes are ok with you that would be great.\n\nYour changes look good to me.\nAnd I do see significant fps increase for the higher resolutions on my target. Now\nthe fps reaches the frame rate from the camera sensor for all the resolutions - up\nto the maximal 8M@15Hz.\n\n> The intend is to squash \"Make swisp_linaro use the new DebayerCpu class\"\n> into the patch adding swisp_linaro before submitting a new series\n> upstream.\n\nAgreed.\n\n> After the squashing the only item remaining before posting\n> a new version upstream is renaming things away from using\n> the linaro name for the current swisp and softipa implementations,\n> I will do this rename tomorrow.\n\nSounds good!\n\n\nThanks,\nAndrey\n\n> Regards,\n> \n> Hans\n> \n> \n> \n>","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 7E10CC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Dec 2023 08:56:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B432562B32;\n\tThu, 14 Dec 2023 09:56:55 +0100 (CET)","from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com\n\t[IPv6:2a00:1450:4864:20::12e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CA92E61D95\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Dec 2023 09:56:53 +0100 (CET)","by mail-lf1-x12e.google.com with SMTP id\n\t2adb3069b0e04-50bfd7be487so8928957e87.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Dec 2023 00:56:53 -0800 (PST)","from [192.168.118.20] ([87.116.160.73])\n\tby smtp.gmail.com with ESMTPSA id\n\tvb5-20020a170907d04500b00a1d885359d6sm8963251ejc.46.2023.12.14.00.56.51\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tThu, 14 Dec 2023 00:56:52 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702544215;\n\tbh=yDk34mJuNBKAeQTg659RcCdOSBmc4bPDFiyFk6tjLoM=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=JfYwNUHcv+OAR1doeuxRPwGBtSIwMPmJNHX9cosrGTEZ1k119jCZ68khDXL7TGdup\n\tPol0614+oE78OUJN4hSdS48E94OhSmETmk3l5AoePIPeX1KZ5clRKN5Xfjd7tTN6yl\n\trJ4KGBR24mqippTOgqPU/LqJqhbZ2Sab2aYYkeZFxDwxo7MfQ7okq6wcVT820ZhTY5\n\t3oACndZUMYEPsVpBi3apZjXkVekggJx7g8vXmKx47N8F1OJXtF+4bQkEKsH08F6QMg\n\t3AabRF/WKLf7/r57tSeQsm9WlzMHaMMPLkAtA2aTnyialSQmR2csS1K+s9fs97+1OM\n\t7NLsib779sjJQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1702544213; x=1703149013;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=tm+bJRTXBo6s8/JfV4uCafdCx5PCep9rWi9viHsrYYE=;\n\tb=xmedSPEbWashuTQSI+oAuihG6kJTxydAj25Yxg85Fyw6wJvH9qvxJWuYCtB7MQWSNG\n\tJQgRkaNjdIZVbMLX+ELLmiNUqQvBUMHoUH2EeS2TNzfwY8u6fZvJXeTkInHkAhj31+hH\n\tDFNFOyzdqOuT8gWuJB7L0QI2J5HbmawiCUQYFYjd6a467OO14LcuSmtr4D8WQmxTGMvd\n\tMY/b9ZYQ9I1x/8JTpuatWpm4MhJFMyUt6On9vyaAy0Yp4JaGkcFGJ7LW5xF66/A1zkdH\n\tqhA93hDc3ZZTC60xenlioFAtAn45flr3hkh6GXpbGDtJsau+TGmSDiK75ykBpIpOTm0P\n\tLgKA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"xmedSPEb\"; \n\tdkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702544213; x=1703149013;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc: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=tm+bJRTXBo6s8/JfV4uCafdCx5PCep9rWi9viHsrYYE=;\n\tb=bwq1epk92j9iW84/jlc/Tvyh9Lq9g18CbRRWEkOB2hKrBH0U+V4w1LLec4CkgKPHw6\n\tsETjkHTbbpMvW7Xo8yaa7SL3CetqTxOmMBkVwfbLQCwaxRCi21v5AysNNYyCKAkCG2UL\n\tt6nJDuWsbvxN0qZ/umjNfeMrEAv9miquF0N53zVfcAwqfP7CDDLCKTtJ4AjJLSeGbMKm\n\tnkg/IdPzu5upDp2gxy7tuWeodFGU4C5LLmstVkcwV1EujuFRFrTAZsUmcxsr0pC1hT9Q\n\tDplosH5Ez0VUpRf/hueVlej9nADkzCclEJcmg+jI9pCGDjJyITEEcLDgcSkUUDvKoXh5\n\tD6bA==","X-Gm-Message-State":"AOJu0YzUQYqZuSfguTZVMLW/qJPewbZ8m/PjJrg6yW+UvRPSambaFDHR\n\tZhuErqJ4iGyFKB+ossoPuvfwiA==","X-Google-Smtp-Source":"AGHT+IEAhoxobPSsHp2eWKjGUOViXAPbWTfWpVddLajzKEQsBOs2nfx7RZCVwbDvY0ACT16Pv+kG3g==","X-Received":"by 2002:a05:6512:31d2:b0:50e:154e:d7ad with SMTP id\n\tj18-20020a05651231d200b0050e154ed7admr647938lfe.79.1702544212728; \n\tThu, 14 Dec 2023 00:56:52 -0800 (PST)","Message-ID":"<ab112c01-ad00-4c6f-b288-00357c84edd2@linaro.org>","Date":"Thu, 14 Dec 2023 11:56:51 +0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Hans de Goede <hdegoede@redhat.com>, Pavel Machek <pavel@ucw.cz>,\n\tbryan.odonoghue@linaro.org","References":"<20231212115046.102726-1-andrey.konovalov@linaro.org>\n\t<20231212115046.102726-5-andrey.konovalov@linaro.org>\n\t<ZXiBbvEBns4mdU9/@duo.ucw.cz>\n\t<170239706778.3044059.6462285174630637754@ping.linuxembedded.co.uk>\n\t<dfb2a76c-13ca-4c0b-8d90-a226e83b35f0@linaro.org>\n\t<170239891199.3044059.3154360492786632784@ping.linuxembedded.co.uk>\n\t<ZXiMNSek6vsOi4tA@duo.ucw.cz>\n\t<4dc8535c-53da-4c96-a2c0-1f786a8857f9@redhat.com>\n\t<749eaf54-ed19-4d99-8c42-87516cbcca44@redhat.com>","Content-Language":"en-US","In-Reply-To":"<749eaf54-ed19-4d99-8c42-87516cbcca44@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [RFC PATCH v2 4/7] libcamera: ipa: Soft IPA:\n\tadd a Soft IPA implementation","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>","From":"Andrey Konovalov via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Andrey Konovalov <andrey.konovalov@linaro.org>","Cc":"mripard@redhat.com, g.martti@gmail.com, t.langendam@gmail.com,\n\tlibcamera-devel <libcamera-devel@lists.libcamera.org>,\n\tsrinivas.kandagatla@linaro.org, admin@dennisbonke.com","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]