Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/22041/?format=api
{ "id": 22041, "url": "https://patchwork.libcamera.org/api/1.1/covers/22041/?format=api", "web_url": "https://patchwork.libcamera.org/cover/22041/", "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": "<20241120180104.1221846-1-mzamazal@redhat.com>", "date": "2024-11-20T18:00:55", "name": "[0/9] Software ISP support for CCM", "submitter": { "id": 177, "url": "https://patchwork.libcamera.org/api/1.1/people/177/?format=api", "name": "Milan Zamazal", "email": "mzamazal@redhat.com" }, "mbox": "https://patchwork.libcamera.org/cover/22041/mbox/", "series": [ { "id": 4810, "url": "https://patchwork.libcamera.org/api/1.1/series/4810/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4810", "date": "2024-11-20T18:00:55", "name": "Software ISP support for CCM", "version": 1, "mbox": "https://patchwork.libcamera.org/series/4810/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/22041/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 174E6C32F9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Nov 2024 18:01:17 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CF4B165F7B;\n\tWed, 20 Nov 2024 19:01:15 +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 9073865F54\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Nov 2024 19:01:13 +0100 (CET)", "from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-178-hs-8Z6CwPAiyehPIy3c2Mw-1;\n\tWed, 20 Nov 2024 13:01:10 -0500", "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS\n\tid 00E5319560AD for <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Nov 2024 18:01:10 +0000 (UTC)", "from nuthatch.redhat.com (unknown [10.45.224.6])\n\tby mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 9871030000DF; Wed, 20 Nov 2024 18:01:08 +0000 (UTC)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"Vtwn3+Gl\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1732125672;\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\tbh=PRY5C2S8m4Z8OGpmsYdsDHK7eOoWSHIGhkKgdIsjTUc=;\n\tb=Vtwn3+GlQalZrrQrIabZbXt+ANJkOUicDeD2qAQYuvu9wyMBNumlrbWdcn6xZ9Lmw3YeL1\n\tFZDBVS468UzoEWFb+2VO0oD3cq2QLGC6eTmZ+ti/aDnc5MkXtQzS3OAe2x6/yy+WaC67qh\n\tJ1K90f0cU3s9wAtEM9e0kngi2kIUu7E=", "X-MC-Unique": "hs-8Z6CwPAiyehPIy3c2Mw-1", "X-Mimecast-MFC-AGG-ID": "hs-8Z6CwPAiyehPIy3c2Mw", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>", "Subject": "[PATCH 0/9] Software ISP support for CCM", "Date": "Wed, 20 Nov 2024 19:00:55 +0100", "Message-ID": "<20241120180104.1221846-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "t0lsc8XCk2shE7uE-D1l5xs3aO5c5durwmD901cJ_Mc_1732125670", "X-Mimecast-Originator": "redhat.com", "Content-Transfer-Encoding": "8bit", "content-type": "text/plain; charset=\"US-ASCII\"; x-default=true", "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 implements application of color correction matrices in software ISP.\n\nSupport for color temperature is added to auto white balance algorithm,\nthis is needed to obtain the right CCM. A new Ccm algorithm is added to\ndetermine the matrix. Both roughly follow what the hardware pipelines\ndo.\n\nLut algorithm is modified to incorporate the CCM and perform some\nprecomputations in the form of 10 lookup tables (one per each matrix\nelement and one for gamma).\n\nA tricky part is to support both CCM and the original (no-CCM)\ntransformations. CCM obviously adds a significant overhead; per-frame\ntime increases by ~45% on Debix Model A and ~85% on TI AM69 SK. This\nmeans CCM must be optional, which is determined by presence of Ccm\nalgorithm in the tuning file.\n\nThe performance critical debayering code must not include extra\nconditionals and must work efficiently for both the cases. The macros\nin debayering code are refactored and restructured for this. An added\nbonus is that this also removes some annoying code duplication. And some more, partially already present, templating is used to select between CCM and non-CCM processing.\n\nPerformance is much influenced by the data structures used in\ndebayering. I tried to define something reasonable and performed only\nbasic performance testing. Suggestions for possible improvements are\nwelcome.\n\nSee the commit messages for more details.\n\nMilan Zamazal (9):\n libcamera: software_isp: Determine color temperature\n libcamera: software_isp: Store color temperature to metadata\n libcamera: software_isp: lut: Remove maybe_unused on a used argument\n libcamera: software_isp: Use common code to store debayered pixels\n libcamera: software_isp: Use a macro to assign debayering methods\n libcamera: software_isp: Add CCM algorithm\n libcamera: software_isp: Add an example CCM to uncalibrated.yaml\n libcamera: software_isp: Track whether CCM is enabled\n libcamera: software_isp: Apply CCM in debayering\n\n .../internal/software_isp/debayer_params.h | 20 ++-\n include/libcamera/ipa/soft.mojom | 2 +-\n src/ipa/simple/algorithms/awb.cpp | 18 ++-\n src/ipa/simple/algorithms/ccm.cpp | 86 ++++++++++++\n src/ipa/simple/algorithms/ccm.h | 45 ++++++\n src/ipa/simple/algorithms/lut.cpp | 62 +++++---\n src/ipa/simple/algorithms/lut.h | 1 +\n src/ipa/simple/algorithms/meson.build | 1 +\n src/ipa/simple/data/uncalibrated.yaml | 7 +\n src/ipa/simple/ipa_context.h | 22 ++-\n src/ipa/simple/soft_simple.cpp | 8 +-\n src/libcamera/software_isp/debayer.cpp | 53 ++++++-\n src/libcamera/software_isp/debayer.h | 3 +-\n src/libcamera/software_isp/debayer_cpu.cpp | 132 ++++++++++--------\n src/libcamera/software_isp/debayer_cpu.h | 31 ++--\n src/libcamera/software_isp/software_isp.cpp | 11 +-\n 16 files changed, 393 insertions(+), 109 deletions(-)\n create mode 100644 src/ipa/simple/algorithms/ccm.cpp\n create mode 100644 src/ipa/simple/algorithms/ccm.h" }