Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/26142/?format=api
{ "id": 26142, "url": "https://patchwork.libcamera.org/api/1.1/covers/26142/?format=api", "web_url": "https://patchwork.libcamera.org/cover/26142/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260213-kbingham-quantizers-v7-0-1626b9aaabf1@ideasonboard.com>", "date": "2026-02-13T16:57:39", "name": "[v7,00/15] libipa: Introduce a Quantized type", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/1.1/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/26142/mbox/", "series": [ { "id": 5789, "url": "https://patchwork.libcamera.org/api/1.1/series/5789/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5789", "date": "2026-02-13T16:57:39", "name": "libipa: Introduce a Quantized type", "version": 7, "mbox": "https://patchwork.libcamera.org/series/5789/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/26142/comments/", "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 9B65FBD78E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 13 Feb 2026 16:58:07 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4EE1B621DC;\n\tFri, 13 Feb 2026 17:58:06 +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 5615262010\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 13 Feb 2026 17:58:04 +0100 (CET)", "from ping.linuxembedded.co.uk\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D9444348;\n\tFri, 13 Feb 2026 17:57:14 +0100 (CET)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"VI8W1fSq\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1771001835;\n\tbh=XTDk1b9gzdajspcw2h77FDBR3S943inQN0g0g8+9VOk=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=VI8W1fSqnReGK10+ngkZ/ofxZH/F84loA2xw0jXIeNrbwRnRWwhLl+z8xXeQcDIDo\n\trhbHkxJEhm8d8DQKDGl9OLyBHrFxIywU8zFmoeuN+VSE6sQzqq/SmFE55El7WytTxV\n\tv6nMubK78ngeTei4fk9DSIpIbiCo2FHSbwXGCEJs=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "Subject": "[PATCH v7 00/15] libipa: Introduce a Quantized type", "Date": "Fri, 13 Feb 2026 16:57:39 +0000", "Message-Id": "<20260213-kbingham-quantizers-v7-0-1626b9aaabf1@ideasonboard.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "X-B4-Tracking": "v=1; b=H4sIAANYj2kC/x3MQQqAIBBA0avIrBNMsKirRAvNsYbISiui8O5Jy\n\t7f4/4WIgTBCy14IeFGk1WfUBYNh0n5ETjYbpJCVkKXgsyE/Tnrh+6n9QQ+GyBtrldDOVUY5yOU\n\tW0NH9X7s+pQ/SHEJ2ZQAAAA==", "X-Change-ID": "20260210-kbingham-quantizers-9dd50aff6b5f", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab?=\n\t=?utf-8?b?w6FzIFDFkWN6ZQ==?= <barnabas.pocze@ideasonboard.com>,\n\tIsaac Scott <isaac.scott@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, \"van Veen, Stephan\"\n\t<stephan.vanveen@karlstorz.com>", "X-Mailer": "b4 0.14.3", "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1771001883; l=6061;\n\ti=kieran.bingham@ideasonboard.com; s=20260207;\n\th=from:subject:message-id; \n\tbh=XTDk1b9gzdajspcw2h77FDBR3S943inQN0g0g8+9VOk=;\n\tb=4gEfXAJYfzs8ecgkHNzNinOKrvIHNoMfUe/NsjKPsuWSUWUVS51+hpPhR1dwYgAP2ivPsBfFy\n\t73/Jxx7OLeFBSbhzBFCmciHp9BT/B6AVNg0HGCunOtidLHGwhsQ3zOE", "X-Developer-Key": "i=kieran.bingham@ideasonboard.com; a=ed25519;\n\tpk=FVXKN7YuwHc6UtbRUeTMAmranfsQomA+vnilfglWdaY=", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "This series superceeds [0] \"rkisp1: cproc - Metadata and Hue\ndevelopments\" by introducing a new base type for libipa to be able to\nmaintain values which are quantized for hardware.\n\nThese data values often need to be converted, perhaps to a fixed-point\nformat for configuration of hardware, but also then back to a floating\npoint for returning as metadata.\n\nThe underlying storage of a quantized fixed point is now always unsigned\nand we ensure that signed extensions can not occur when storing in\nlarger registers.\n\nIn particular this series builds to solve the review comment that\nblocked the original series at [1]\n\nThe Quantized type provides a storage mechanism to make both of these\nstorage representations visible to code that wishes to utilise the\nspecific values.\n\nThe series then re-introduces the proposed updates to cproc using the\nnew Q types by supplying Fixed Point types and a scaled fixed point type\nfor the Hue control.\n\nFinally, the remaining users of the fixedToFloatingPoint and\nfloatingToFixedPoint are converted and the old helpers and tests are\nremoved.\n\nThis in cases such as the Mali-C55 AWB Gains means that we now report\naccurate gains as used by the hardware in the metadata.\n\nThis then allows us to clean up a workaround which was managing the\nusage of unsigned integers to represent signed floats.\n\nTests and documentation are provided throughout.\n\n[0] https://patchwork.libcamera.org/project/libcamera/list/?series=5245\n[1] https://patchwork.libcamera.org/patch/23645/#34626\n\nRunning the tests directly shows the following output (all passing)\n\nQ1.7(-1 .. 0.992188) Min: [0x80:-1] -- Max: [0x7f:0.992188] Step:0.0078125\n Checking -2 == [0x80:-1]\n Checking -1 == [0x80:-1]\n Checking -0.992 == [0x81:-0.992188]\n Checking -0.006 == [0xff:-0.0078125]\n Checking 0 == [0x00:0]\n Checking 0.008 == [0x01:0.0078125]\n Checking 0.992 == [0x7f:0.992188]\n Checking 2 == [0x7f:0.992188]\n\nUQ1.7(0 .. 1.99219) Min: [0x00:0] -- Max: [0xff:1.99219] Step:0.0078125\n Checking -1 == [0x00:0]\n Checking 0 == [0x00:0]\n Checking 1 == [0x80:1]\n Checking 1.992 == [0xff:1.99219]\n Checking 2 == [0xff:1.99219]\n\nQ4.7(-8 .. 7.99219) Min: [0x0400:-8] -- Max: [0x03ff:7.99219] Step:0.0078125\n Checking -8 == [0x0400:-8]\n Checking -0.008 == [0x07ff:-0.0078125]\n Checking 0 == [0x0000:0]\n Checking 0.008 == [0x0001:0.0078125]\n Checking 7.992 == [0x03ff:7.99219]\n Checking 0.2 == [0x001a:0.203125]\n Checking -0.2 == [0x07e6:-0.203125]\n Checking -0.8 == [0x079a:-0.796875]\n Checking -0.4 == [0x07cd:-0.398438]\n Checking -1.4 == [0x074d:-1.39844]\n\nUQ4.8(0 .. 15.9961) Min: [0x0000:0] -- Max: [0x0fff:15.9961] Step:0.00390625\n Checking 0 == [0x0000:0]\n Checking 16 == [0x0fff:15.9961]\n\nQ5.4(-16 .. 15.9375) Min: [0x0100:-16] -- Max: [0x00ff:15.9375] Step:0.0625\n Checking -16 == [0x0100:-16]\n Checking 15.94 == [0x00ff:15.9375]\n\nUQ5.8(0 .. 31.9961) Min: [0x0000:0] -- Max: [0x1fff:31.9961] Step:0.00390625\n Checking 0 == [0x0000:0]\n Checking 32 == [0x1fff:31.9961]\n\nQ12.4(-2048 .. 2047.94) Min: [0x8000:-2048] -- Max: [0x7fff:2047.94] Step:0.0625\n Checking 0 == [0x0000:0]\n Checking 7.5 == [0x0078:7.5]\n\nUQ12.4(0 .. 4095.94) Min: [0x0000:0] -- Max: [0xffff:4095.94] Step:0.0625\n Checking 0 == [0x0000:0]\n Checking 7.5 == [0x0078:7.5]\n\nQ4.20(-8 .. 8) Min: [0x00800000:-8] -- Max: [0x007fffff:8] Step:9.53674e-07\n Checking -9 == [0x00800000:-8]\n Checking -8 == [0x00800000:-8]\n Checking 8 == [0x007fffff:8]\n Checking 9 == [0x007fffff:8]\n\nUQ4.20(0 .. 16) Min: [0x00000000:0] -- Max: [0x00ffffff:16] Step:9.53674e-07\n Checking -1 == [0x00000000:0]\n Checking 0 == [0x00000000:0]\n Checking 16 == [0x00ffffff:16]\n Checking 20 == [0x00ffffff:16]\n\nTesting sign extension of quantized values when cast to larger registers\n Checking [0x20:-2] == 0x20\n Checking [0x80:-8] == 0x80\n Checking [0x80:-8] == 0x0080\n Checking [0x8000:-128] == 0x8000\n Checking [0x8000:-128] == 0x00008000\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\nKieran Bingham (14):\n ipa: libipa: Provide a Quantized data type support\n test: libipa: Add tests for Quantized types\n ipa: libipa: fixedpoint: Fix unsigned usage\n ipa: libipa: Provide fixed point quantized traits\n test: libipa: Provide FixedPoint Quantized tests\n ipa: rkisp1: cproc: Convert to use Quantized types\n ipa: rkisp1: cproc: Report metadata\n ipa: rkisp1: cproc: Provide a Hue control\n ipa: rkisp1: ccm: Use Q<4, 7> format directly\n ipa: mali-c55: Reduce AWB calculations to float precision\n ipa: mali-c55: Convert AWB to UQ<4, 8> usage\n ipa: mali-c55: agc: Quantise the ISP Digital Gain\n test: libipa: Remove legacy fixed point conversion test\n ipa: libipa: fixedpoint: Move float conversion inline\n\nvan Veen, Stephan (1):\n libcamera: controls: Define a new core Hue control\n\n src/ipa/libipa/fixedpoint.cpp | 108 +++++++++++++---\n src/ipa/libipa/fixedpoint.h | 120 +++++++++++------\n src/ipa/libipa/meson.build | 2 +\n src/ipa/libipa/quantized.cpp | 135 +++++++++++++++++++\n src/ipa/libipa/quantized.h | 75 +++++++++++\n src/ipa/mali-c55/algorithms/agc.cpp | 18 +--\n src/ipa/mali-c55/algorithms/awb.cpp | 44 +++----\n src/ipa/mali-c55/ipa_context.h | 16 ++-\n src/ipa/rkisp1/algorithms/ccm.cpp | 3 +-\n src/ipa/rkisp1/algorithms/cproc.cpp | 68 +++++++---\n src/ipa/rkisp1/algorithms/cproc.h | 4 +\n src/ipa/rkisp1/ipa_context.h | 26 ++--\n src/libcamera/control_ids_core.yaml | 15 +++\n test/ipa/libipa/fixedpoint.cpp | 252 ++++++++++++++++++++++++++++--------\n test/ipa/libipa/meson.build | 1 +\n test/ipa/libipa/quantized.cpp | 148 +++++++++++++++++++++\n 16 files changed, 859 insertions(+), 176 deletions(-)\n---\nbase-commit: 1dcf9957a47fb54fce4fbae9daec0b587e52562e\nchange-id: 20260210-kbingham-quantizers-9dd50aff6b5f\n\nBest regards," }