{"id":22528,"url":"https://patchwork.libcamera.org/api/covers/22528/?format=json","web_url":"https://patchwork.libcamera.org/cover/22528/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20250113133405.12167-1-mzamazal@redhat.com>","date":"2025-01-13T13:33:59","name":"[v3,0/6] ipa: simple: Introduce metadata reporting","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/?format=json","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"mbox":"https://patchwork.libcamera.org/cover/22528/mbox/","series":[{"id":4945,"url":"https://patchwork.libcamera.org/api/series/4945/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4945","date":"2025-01-13T13:33:59","name":"ipa: simple: Introduce metadata reporting","version":3,"mbox":"https://patchwork.libcamera.org/series/4945/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/22528/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 BD727C32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 13:34:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2F7896851C;\n\tMon, 13 Jan 2025 14:34: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 561B8684E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 14:34:17 +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-684-pBM2YVKWO0y_9Gxl7WvbjQ-1;\n\tMon, 13 Jan 2025 08:34:14 -0500","from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.17])\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 id B0C461954202; Mon, 13 Jan 2025 13:34:13 +0000 (UTC)","from mzamazal-thinkpadp1gen3.tpbc.com (unknown [10.45.224.6])\n\tby mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 6AA301955BE3; Mon, 13 Jan 2025 13:34:11 +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=\"ehYNXOMJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1736775256;\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=lV+rfj3x4/bVpnX2t7TSsM8lXXN23GcJihYHDVext7w=;\n\tb=ehYNXOMJhfpslt5cSckX44Qy8hglg5gOqjgBczVECNSjD5I1cGQ1wNhmpGdr9eRlMD+paw\n\t+56p7w/5CVvuVe0oEaKEZrW50+8dYBN0bzvuIrRb9o7WrXoPosgEotGnntLjIvT5afHLGG\n\tsLuxQMrIKcZ8n2WpPcKMMxRHFREjUSo=","X-MC-Unique":"pBM2YVKWO0y_9Gxl7WvbjQ-1","X-Mimecast-MFC-AGG-ID":"pBM2YVKWO0y_9Gxl7WvbjQ","From":"Milan Zamazal <mzamazal@redhat.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Milan Zamazal <mzamazal@redhat.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <pobrn@protonmail.com>","Subject":"[PATCH v3 0/6] ipa: simple: Introduce metadata reporting","Date":"Mon, 13 Jan 2025 14:33:59 +0100","Message-ID":"<20250113133405.12167-1-mzamazal@redhat.com>","MIME-Version":"1.0","X-Scanned-By":"MIMEDefang 3.0 on 10.30.177.17","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"n-3yCY-tI9qW_zPkNs6CLuUclAN0ujGdDPLaXYXr8M0_1736775253","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":"Provide metadata reporting for the software ISP. Initially the Black\nLevels, ColourGains and Contrast are reported, but also serve as a\ndirection to add further metadata or internal reporting of the software\nISP.\n\nRunning cam -c1 -C10 --metadata now produces the following:\n\n1668.359684 (14.95 fps) cam0-stream0 seq: 000004 bytesused: 15069888\n\tSensorBlackLevels = [ 4096, 4096, 4096, 4096 ]\n        AnalogueGain = 10.240000\n        ColourGains = [ 0.001509, 0.001380 ]\n        ExposureTime = 2127\n\tSensorTimestamp = 1668359684000\n\nChanges in v3:\n- Don't use dynamic allocation for SimpleFrames entries.\n- A tentative patch to add exposure/gain to metadata.\n\nChanges in v2:\n- Taken over from Kieran.\n- Updated for master.\n- Black level is reported as uint16_t, according to the control\n  documentation.\n- Contrast value is reported in metadata.\n- The metadata used to proces the image is reported rather than the\n  metadata determined from the image.\n- Metadata is reported using a new signal rather than (ab)using\n  setIspParams; this change is less or more needed due to changed simple\n  IPA structure since v1.\n- Frame -> request mapping is introduced to make sure the metadata is\n  assigned to the right request.\n\nKieran Bingham (3):\n  ipa: simple: softisp: Extend to pass metadata\n  ipa: simple: Report the ColourGains in metadata\n  ipa: simple: Report black levels in metadata\n\nMilan Zamazal (3):\n  libcamera: software_isp: Track frames and requests\n  ipa: simple: Report contrast in metadata\n  ipa: simple: Report exposure in metadata\n\n .../internal/software_isp/software_isp.h      |   2 +\n include/libcamera/ipa/soft.mojom              |   1 +\n src/ipa/simple/algorithms/agc.cpp             |   7 +-\n src/ipa/simple/algorithms/awb.cpp             |  11 +-\n src/ipa/simple/algorithms/blc.cpp             |   9 +-\n src/ipa/simple/algorithms/lut.cpp             |  11 ++\n src/ipa/simple/algorithms/lut.h               |   5 +\n src/ipa/simple/soft_simple.cpp                |   7 +-\n src/libcamera/pipeline/simple/simple.cpp      | 102 +++++++++++++++++-\n src/libcamera/software_isp/software_isp.cpp   |  11 ++\n 10 files changed, 151 insertions(+), 15 deletions(-)"}