{"id":13535,"url":"https://patchwork.libcamera.org/api/1.1/covers/13535/?format=json","web_url":"https://patchwork.libcamera.org/cover/13535/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20210827080227.26370-1-jeanmichel.hautbois@ideasonboard.com>","date":"2021-08-27T08:02:23","name":"[libcamera-devel,v2,0/4] IPU3: AWB and AGC improvements","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/1.1/people/75/?format=json","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/13535/mbox/","series":[{"id":2407,"url":"https://patchwork.libcamera.org/api/1.1/series/2407/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2407","date":"2021-08-27T08:02:23","name":"IPU3: AWB and AGC improvements","version":2,"mbox":"https://patchwork.libcamera.org/series/2407/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/13535/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 48463BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 27 Aug 2021 08:02:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A07A268939;\n\tFri, 27 Aug 2021 10:02:33 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 46D7868891\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Aug 2021 10:02:32 +0200 (CEST)","from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:ccf5:c267:eba8:cbb5])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D472D5A1;\n\tFri, 27 Aug 2021 10:02:31 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"uHRRTnSk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630051351;\n\tbh=ukBhr980cDxbYkv209L1V4DhdjK9XGurE95+AgAffYs=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=uHRRTnSkwrjyGk3xXc6xlWWLZ0FmrsLevI00RlVRpyOn15iIKNyJ3/2CfdgniSde3\n\tI+OENyrz6KqOHsbQH6rQruAdae1jjN7a2NliDiBlN9I9fbuiogFWXp+FVu/GMZFwIU\n\tPmZqtsfeLaKDFizAevr2ZKabBGtRclWkfowtdlak=","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 27 Aug 2021 10:02:23 +0200","Message-Id":"<20210827080227.26370-1-jeanmichel.hautbois@ideasonboard.com>","X-Mailer":"git-send-email 2.30.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 0/4] IPU3: AWB and AGC improvements","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":"Now that we have a full context share between algorithms when needed,\nand a modular algorithm instanciation, we can introduce a new AGC\nalgorithm to demonstrate how one can chose between one or another (it\ncould obviously be done with a configuration file).\n\nThe algorithm comes from the RPi source code, and has been adapted but\nstays similar in its concepts. It uses the AWB gains calculated at each\nframe to adjust the exposure.\nAs we need to access the AWB statistics, having the needed structures\noutside the AWB class sounds better.\n\n--\nv2: Remove the AWB modifications of the gains because it introduces\nregressions on SGo2\n\nJean-Michel Hautbois (4):\n  ipa: ipu3: Move the AWB stats structures\n  ipa: ipu3: Rename AGC algorithm\n  ipa: ipu3: Document AGC mean-based algorithm\n  ipa: ipu3: Introduce a new AGC algorithm\n\n .../ipu3/algorithms/{agc.cpp => agc_mean.cpp} | 116 ++++-\n src/ipa/ipu3/algorithms/{agc.h => agc_mean.h} |   8 +-\n src/ipa/ipu3/algorithms/agc_metering.cpp      | 427 ++++++++++++++++++\n src/ipa/ipu3/algorithms/agc_metering.h        |  78 ++++\n src/ipa/ipu3/algorithms/awb.cpp               |  47 +-\n src/ipa/ipu3/algorithms/awb.h                 |  81 ++--\n src/ipa/ipu3/algorithms/meson.build           |   3 +-\n src/ipa/ipu3/ipa_context.h                    |   7 +\n src/ipa/ipu3/ipu3.cpp                         |  15 +-\n 9 files changed, 693 insertions(+), 89 deletions(-)\n rename src/ipa/ipu3/algorithms/{agc.cpp => agc_mean.cpp} (61%)\n rename src/ipa/ipu3/algorithms/{agc.h => agc_mean.h} (90%)\n create mode 100644 src/ipa/ipu3/algorithms/agc_metering.cpp\n create mode 100644 src/ipa/ipu3/algorithms/agc_metering.h"}