[{"id":37444,"web_url":"https://patchwork.libcamera.org/comment/37444/","msgid":"<cn2pkpkjdayf4eq4rer5o534jfkeyqeewu724as6aygsayv4g6@zclf4ywhdq3h>","date":"2025-12-23T11:02:09","subject":"Re: [PATCH 1/2] Documentation: add glossary page","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Walter,\n\nOn Fri, Dec 19, 2025 at 09:06:30PM +0200, Walter Werner Schneider wrote:\n> The page currently contains acronyms and abbreviations commonly used\n> troughout libcamera and related projects, but can be expanded to also\n> explain technical terms.\n\nThanks, as said on irc I'm in two minds about this.\n\nOn one side, I clearly understand it might be helpful to newcomers to\nnavigate the code base and documentation. On the other hand, most\nconcepts here are not libcamera specific, and just providing an\nexplanation for the acronym might not be sufficient to clarify the\nconcepts in full.\n\nOn some terms, specifically the ones that refers to standards, just\nspelling the names out might even be confusing. See below\n\n>\n> Signed-off-by: Walter Werner Schneider <contact@schnwalter.eu>\n> ---\n>  Documentation/glossary.rst | 158 +++++++++++++++++++++++++++++++++++++++++++++\n>  Documentation/index.rst    |   1 +\n>  Documentation/meson.build  |   1 +\n>  3 files changed, 160 insertions(+)\n>\n> diff --git a/Documentation/glossary.rst b/Documentation/glossary.rst\n> new file mode 100644\n> index 0000000000000000000000000000000000000000..d8679a1148d2b520c301891745e78f5033b1235d\n> --- /dev/null\n> +++ b/Documentation/glossary.rst\n> @@ -0,0 +1,158 @@\n> +.. SPDX-License-Identifier: CC-BY-SA-4.0\n> +\n> +Glossary\n> +========\n> +\n> +This document contains a glossary of technical terms, acronyms and\n> +abbreviations commonly used throughout the libcamera documentation and\n> +codebase.\n> +\n> +.. Please keep the glossary entries in alphabetical order.\n> +\n> +.. glossary::\n> +   :sorted:\n> +\n> +   3A\n> +      Refers to the :term:`AE`, :term:`AF` and :term:`AWB`.\n> +\n> +   AE\n> +      Auto Exposure\n> +\n> +   AEC\n> +      Auto Exposure Control\n> +\n> +   AEGC\n> +      Refers to :term:`AEC` and :term:`AGC`\n> +\n> +   AF\n> +      Auto Focus\n> +\n> +   AFC\n> +      Auto Focus Control\n> +\n> +   AGC\n> +      Auto Gain Control\n> +\n> +   ALSC\n> +      Auto Lens Shading Correction\n\nI think the 'A' here stands for \"Adaptive\", at least in the RPi\nimplementation ?\n\n> +\n> +   AWB\n> +      Auto White Balance\n> +\n> +   BLC\n> +      Black Level Correction\n> +\n> +   BLS\n> +      Black Level Subtraction\n\nSee, one might wonder what the difference is between the two, while\nthey're actually two different names for the same algorithm\n\n> +\n> +   CAC\n> +      Chromatic Aberration Correction\n> +\n> +   CC\n> +      Color Correction\n> +\n> +   CCI\n> +      Camera Control Interface\n\nThis is a MIPI standard, and if we want to define it, we should give a\nreference to the standard. CCI is actually part of the CCS\nspecification if I'm not mistaken ?\n\n> +\n> +   CCM\n> +      Color Correction Matrix\n> +\n> +   CCS\n> +      Camera Command Set\n\nThat's a MIPI standard. Should we say so ?\n\n> +\n> +   CDAF\n> +      Contrast Detection Auto Focus\n> +\n> +   CDN\n> +      Color Denoise\n> +\n> +   CIF\n> +      Camera Interface\n\nIs CIF a Rockchip specific name ?\n\n> +\n> +   CPROC\n> +      Color Processing\n> +\n> +   CSC\n> +      Color Space Conversion\n> +\n> +   CSI\n> +      Camera Serial Interface\n\nEh. CSI is probably the most overloaded acronym of all. Some vendors\n(amlogic ?) have a parallel interface named CSI..\n\n> +\n> +   CSI-2\n> +      Camera Serial Interface 2\n\nA mipi standard indeed\n\n> +\n> +   DMA\n> +      Direct Memory Access\n\nIs this really related to cameras ?\n\n> +\n> +   DPC\n> +      Defective Pixel Correction\n> +\n> +   DPCC\n> +      Defective Pixel Cluster Correction\n> +\n> +   DPF\n> +      Denoise Pre-Filter\n> +\n> +   FB\n> +      Frame Buffer\n\nOne might wonder what \"Frame buffer\" means precisely. I think we should\neither explain it in more length or drop it\n\n> +\n> +   FourCC\n> +      Four Character Code, abstract identifier that uniquely defines\n> +      a :term:`FB` pixel format.\n\nWhat's a pixel format then ? :)\n\n> +\n> +   GEQ\n> +      Green Equalisation\n> +\n> +   GSL\n> +      Gamma Sensor Linearization\n> +\n> +   GOC\n> +      Gamma Out Curve\n> +\n> +   HAL\n> +      Hardware Abstraction Layer\n\nThis is an androidism, but it is used by other OSes and frameworks as\nwell.. Not sure it has anything to do with imaging though\n\n> +\n> +   HDR\n> +      High Dynamic Range\n> +\n> +   IPA\n> +      Image Processing Algorithm\n\nThat's indeed a libcamera-specific term\n\n> +\n> +   IPC\n> +      Inter-process communication\n\nNot really related to imaging\n\n> +\n> +   IPU3\n> +      Intel 3rd generation Image Processing Unit\n> +\n\nWhy IPU3 and not all the other ISPs names ? I mean, I understand it\nmight be useful to quickly know what it means, but ... not sure it's\nthe right place here\n\n> +   ISP\n> +      Image Signal Processor\n> +\n> +   NLL\n> +      Noise Level Lookup\n> +\n> +   LSC\n> +      Lens Shading Correction\n> +\n> +   PDAF\n> +      Phase Detection Auto Focus\n> +\n> +   SDN\n> +      Spatial Denoise\n> +\n> +   TDN\n> +      Temporal Denoise\n> +\n> +   UVC\n> +      USB Video Class\n> +\n> +   V4L2\n> +      Video for Linux 2\n> +\n> +   VIMC\n> +      Virtual Media Controller\n\nThat's just the name of a driver in Linux...\n\n> +\n> +   WBG\n> +      White Balance Gain\n\nFirst time I see this one :)\n\n> +\n> +   WDR\n> +      Wide Dynamic Range\n\nI'm not sure.. Again, I understand why it might be useful, but it\nfeels there are a lot terms there which either refers to standards,\ninformal acronyms, driver names.. it's a bit mixed.. maybe it's just\nwhat a glossary should look like.\n\nIn general, I'm a bit skeptical on the idea of trying to create\ndefinitions for things 'bigger' than libcamera. It's not the job of\na software library to provide a knowledge base for imaging concepts\nand technologies, as the risk of providing incomplete/misleading\ninformation is higher than the benefit. Here we have just terms, so\nthe risk of mis-guiding people is low, but still it feels\nunderspecified for some entries (standards in particular).\n\nWhat do the others think ?\n\n\n> diff --git a/Documentation/index.rst b/Documentation/index.rst\n> index 8109b4295c92d722a2a215b97fd50af2f9babb9c..2eb0b894f1139d43389b2b450be003b054f6e335 100644\n> --- a/Documentation/index.rst\n> +++ b/Documentation/index.rst\n> @@ -21,6 +21,7 @@\n>\n>     Contribute <contributing>\n>     Getting Started <getting-started>\n> +   Glossary <glossary>\n>     Camera Sensor Model <camera-sensor-model>\n>     IPA Writer's guide <guides/ipa>\n>     libcamera Architecture <libcamera_architecture>\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index 51899c19c1667c8ac07c6e7776e1faaa14915e20..158825e398c48f41fbfebe4b4ac7afecb1a5b2a2 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -161,6 +161,7 @@ if sphinx.found()\n>          'guides/ipa.rst',\n>          'guides/pipeline-handler.rst',\n>          'guides/tracing.rst',\n> +        'glossary.rst',\n>          'index.rst',\n>          'internal-api/index.rst',\n>          'introduction.rst',\n>\n> --\n> 2.51.1\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 454E0BDCBF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Dec 2025 11:02:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 50F0B61F96;\n\tTue, 23 Dec 2025 12:02:13 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7DD81615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Dec 2025 12:02:12 +0100 (CET)","from ideasonboard.com (net-93-65-100-155.cust.vodafonedsl.it\n\t[93.65.100.155])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 62731982;\n\tTue, 23 Dec 2025 12:02:01 +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=\"YtzppGkA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1766487721;\n\tbh=PYVFwQlAujQLUD8O5I+QkeAAy0/yyStKZ5uJDzkyXbs=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=YtzppGkAMHLCJv5l6P9gxnPyezqFkMGTcsWM/MoXamRMhl4VWQxj6oAtlLnbYf6UM\n\tKjzAmzOSWKI79/Fx2IeCShl3+l0r3leG0LCc72A6CR23b++tCVEfLw8agzY6PPnMSZ\n\tVJIRdLKiW73Ba+KSEr38L9DFRWi0RAwDFDXC0gHg=","Date":"Tue, 23 Dec 2025 12:02:09 +0100","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Walter Werner Schneider <contact@schnwalter.eu>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 1/2] Documentation: add glossary page","Message-ID":"<cn2pkpkjdayf4eq4rer5o534jfkeyqeewu724as6aygsayv4g6@zclf4ywhdq3h>","References":"<20251219-glossary-page-v1-0-971ba0ab4b2f@schnwalter.eu>\n\t<20251219-glossary-page-v1-1-971ba0ab4b2f@schnwalter.eu>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20251219-glossary-page-v1-1-971ba0ab4b2f@schnwalter.eu>","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>"}},{"id":37452,"web_url":"https://patchwork.libcamera.org/comment/37452/","msgid":"<176700117549.21426.12872672199167542314@ping.linuxembedded.co.uk>","date":"2025-12-29T09:39:35","subject":"Re: [PATCH 1/2] Documentation: add glossary page","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Walter,\n\nThank you for working on this.\n\nQuoting Jacopo Mondi (2025-12-23 11:02:09)\n> Hi Walter,\n> \n> On Fri, Dec 19, 2025 at 09:06:30PM +0200, Walter Werner Schneider wrote:\n> > The page currently contains acronyms and abbreviations commonly used\n> > troughout libcamera and related projects, but can be expanded to also\n> > explain technical terms.\n> \n> Thanks, as said on irc I'm in two minds about this.\n\nI think this is a positive and helpful contribution.\n\n> On one side, I clearly understand it might be helpful to newcomers to\n> navigate the code base and documentation. On the other hand, most\n> concepts here are not libcamera specific, and just providing an\n> explanation for the acronym might not be sufficient to clarify the\n> concepts in full.\n\nIt might not be fully describing the concepts, but it's at least more\nclearly expanding the definition to /our/ usage. As you stated below -\nsometimes TLAs (The literal abbreviations) can be MUA\n(Multi-use-acronyms) and at the very least a DUI (defined ultimate\nintent) can prevent them from being misconstrued.\n\n\n> On some terms, specifically the ones that refers to standards, just\n> spelling the names out might even be confusing. See below\n\nI'm not sure I understand this how can spelling out the names be more\nconfusing than just leaving an ambiguity ?\n\n> \n> >\n> > Signed-off-by: Walter Werner Schneider <contact@schnwalter.eu>\n> > ---\n> >  Documentation/glossary.rst | 158 +++++++++++++++++++++++++++++++++++++++++++++\n> >  Documentation/index.rst    |   1 +\n> >  Documentation/meson.build  |   1 +\n> >  3 files changed, 160 insertions(+)\n> >\n> > diff --git a/Documentation/glossary.rst b/Documentation/glossary.rst\n> > new file mode 100644\n> > index 0000000000000000000000000000000000000000..d8679a1148d2b520c301891745e78f5033b1235d\n> > --- /dev/null\n> > +++ b/Documentation/glossary.rst\n> > @@ -0,0 +1,158 @@\n> > +.. SPDX-License-Identifier: CC-BY-SA-4.0\n> > +\n> > +Glossary\n> > +========\n> > +\n> > +This document contains a glossary of technical terms, acronyms and\n> > +abbreviations commonly used throughout the libcamera documentation and\n> > +codebase.\n> > +\n> > +.. Please keep the glossary entries in alphabetical order.\n> > +\n> > +.. glossary::\n> > +   :sorted:\n> > +\n> > +   3A\n> > +      Refers to the :term:`AE`, :term:`AF` and :term:`AWB`.\n> > +\n> > +   AE\n> > +      Auto Exposure\n> > +\n> > +   AEC\n> > +      Auto Exposure Control\n> > +\n> > +   AEGC\n> > +      Refers to :term:`AEC` and :term:`AGC`\n> > +\n> > +   AF\n> > +      Auto Focus\n> > +\n> > +   AFC\n> > +      Auto Focus Control\n> > +\n> > +   AGC\n> > +      Auto Gain Control\n> > +\n> > +   ALSC\n> > +      Auto Lens Shading Correction\n> \n> I think the 'A' here stands for \"Adaptive\", at least in the RPi\n> implementation ?\n\nYes, I think I recall that too.\n\n> \n> > +\n> > +   AWB\n> > +      Auto White Balance\n> > +\n> > +   BLC\n> > +      Black Level Correction\n> > +\n> > +   BLS\n> > +      Black Level Subtraction\n> \n> See, one might wonder what the difference is between the two, while\n> they're actually two different names for the same algorithm\n\n\nThat can easily be solved with \", equivalent to :term:`BLC`\" or such ?\n\nI think it's helpful to document that we expect these terms to mean the\nsame thing ultimately.\n\n> \n> > +\n> > +   CAC\n> > +      Chromatic Aberration Correction\n> > +\n> > +   CC\n> > +      Color Correction\n\nOhh that's an interesting one. I don't recall seeing that used.\n\ngit grep \" CC\" | grep -Ev \"CC0|CCM|CCS|CC_|CC-\"\nsrc/ipa/libipa/colours.cpp: * locus in order to calculate the CCT in terms of chromaticity coordinates.\nsrc/ipa/libipa/colours.cpp:\t/* Calculate CCT */\nutils/raspberrypi/ctt/ctt.py:        if image is greyscale then CCm makes no sense\n\n\nI think I'd drop this one. I don't think CC should be used on it's own,\nand the only match I see above is CCm ? which is just CCM really.\n\n\n> > +\n> > +   CCI\n> > +      Camera Control Interface\n> \n> This is a MIPI standard, and if we want to define it, we should give a\n> reference to the standard. CCI is actually part of the CCS\n> specification if I'm not mistaken ?\n\n\nI don't actually see this in the libcamera tree. So I'm not sure if we\nshould define it (yet?) but if we do then yes we should clearly point\nthat when we say CCI we mean the MIPI-CCI specification.\n\n> \n> > +\n> > +   CCM\n> > +      Color Correction Matrix\n> > +\n> > +   CCS\n> > +      Camera Command Set\n> \n> That's a MIPI standard. Should we say so ?\n\ninclude/linux/drm_fourcc.h uses CCS for \"Color Control Surfaces\". Which\nis unrelated to our usages, but in the project. I wonder if we should\nclear that up here somehow.\n\nBut indeed we should reference that we mean the MIPI CCS. This is where\nI think adding a bit more text than just the expansion can help.\n\n\n> \n> > +\n> > +   CDAF\n> > +      Contrast Detection Auto Focus\n> > +\n> > +   CDN\n> > +      Color Denoise\n> > +\n> > +   CIF\n> > +      Camera Interface\n> \n> Is CIF a Rockchip specific name ?\n\nI think so:\n\nRKISP1_CIF_ISP_DPCC_MODE_STAGE1_ENABLE\n\nSo it ends up frequently used in the code base for src/ipa/rkisp1/.\nPerhaps we should state that.\n\n\n> \n> > +\n> > +   CPROC\n> > +      Color Processing\n> > +\n> > +   CSC\n> > +      Color Space Conversion\n> > +\n> > +   CSI\n> > +      Camera Serial Interface\n> \n> Eh. CSI is probably the most overloaded acronym of all. Some vendors\n> (amlogic ?) have a parallel interface named CSI..\n\nI think CSI should point to CSI-2 which is what it actually refers to\nfor our use cases. Or a bit like a wikipedia:\n  - https://en.wikipedia.org/wiki/CSI\n\nPerhaps it should say:\n\n \"CSI may refer to :term:`CSI-2` or :term:`CSI(Amlogic)`\"\n\nOr something like that ?\n \n\n> > +\n> > +   CSI-2\n> > +      Camera Serial Interface 2\n> \n> A mipi standard indeed\n\n\n> \n> > +\n> > +   DMA\n> > +      Direct Memory Access\n> \n> Is this really related to cameras ?\n\n'git grep -i DMA' certainly implies it is related to libcamera.\n\n> > +\n> > +   DPC\n> > +      Defective Pixel Correction\n> > +\n> > +   DPCC\n> > +      Defective Pixel Cluster Correction\n> > +\n> > +   DPF\n> > +      Denoise Pre-Filter\n> > +\n> > +   FB\n> > +      Frame Buffer\n> \n> One might wonder what \"Frame buffer\" means precisely. I think we should\n> either explain it in more length or drop it\n> \n> > +\n> > +   FourCC\n> > +      Four Character Code, abstract identifier that uniquely defines\n> > +      a :term:`FB` pixel format.\n> \n> What's a pixel format then ? :)\n> \n> > +\n> > +   GEQ\n> > +      Green Equalisation\n> > +\n> > +   GSL\n> > +      Gamma Sensor Linearization\n> > +\n> > +   GOC\n> > +      Gamma Out Curve\n> > +\n> > +   HAL\n> > +      Hardware Abstraction Layer\n> \n> This is an androidism, but it is used by other OSes and frameworks as\n> well.. Not sure it has anything to do with imaging though\n\nI don't think this is an Androidism. The term 'HAL' as 'hardware\nabstraction layer' has been around long before Android was born. Or I've\nbeen around too long. One of those....\n\nBut at least here 'git grep -wi HAL' does show this to only come up in\nthe Android components, so we really use it as the 'Android Camera HAL'.\n\n> \n> > +\n> > +   HDR\n> > +      High Dynamic Range\n> > +\n> > +   IPA\n> > +      Image Processing Algorithm\n> \n> That's indeed a libcamera-specific term\n> \n> > +\n> > +   IPC\n> > +      Inter-process communication\n> \n> Not really related to imaging\n\nYet we definitely don't mean \"Infection Prevention and Control\".\n\n> \n> > +\n> > +   IPU3\n> > +      Intel 3rd generation Image Processing Unit\n> > +\n> \n> Why IPU3 and not all the other ISPs names ? I mean, I understand it\n> might be useful to quickly know what it means, but ... not sure it's\n> the right place here\n\nPerhaps we should add others then?\n\nRKISP1 might be good to expand here especially as we can say\n\n  RKISP1\n    The Rockchip ISP driver component, which supports several ISP\n    implementations including the RK3399 and the NXP i.MX8MP.\n\n\n> > +   ISP\n> > +      Image Signal Processor\n> > +\n> > +   NLL\n> > +      Noise Level Lookup\n> > +\n\nI think we just lost alphabetical ordering here ;-)\n\n> > +   LSC\n> > +      Lens Shading Correction\n> > +\n> > +   PDAF\n> > +      Phase Detection Auto Focus\n> > +\n> > +   SDN\n> > +      Spatial Denoise\n> > +\n> > +   TDN\n> > +      Temporal Denoise\n> > +\n> > +   UVC\n> > +      USB Video Class\n> > +\n> > +   V4L2\n> > +      Video for Linux 2\n> > +\n> > +   VIMC\n> > +      Virtual Media Controller\n> \n> That's just the name of a driver in Linux...\n\nI think we should say that - we use it for testing.\n\n> \n> > +\n> > +   WBG\n> > +      White Balance Gain\n> \n> First time I see this one :)\n> \n> > +\n> > +   WDR\n> > +      Wide Dynamic Range\n> \n> I'm not sure.. Again, I understand why it might be useful, but it\n> feels there are a lot terms there which either refers to standards,\n> informal acronyms, driver names.. it's a bit mixed.. maybe it's just\n> what a glossary should look like.\n\nAssuming doxygen will handle all the :term:`TLA` links here - I don't\nthink the mix matters. It's just the database to store all of the\ndefintions or expansions of any term we use which merits a bit of\ncontext. And if a user has come in and said \"I don't know what this term\nrefers to in the context of libcamera\" that would automatically make it\nappropriate to explain in my view.\n\n\n\n> In general, I'm a bit skeptical on the idea of trying to create\n> definitions for things 'bigger' than libcamera. It's not the job of\n> a software library to provide a knowledge base for imaging concepts\n> and technologies, as the risk of providing incomplete/misleading\n> information is higher than the benefit. Here we have just terms, so\n> the risk of mis-guiding people is low, but still it feels\n> underspecified for some entries (standards in particular).\n> \n> What do the others think ?\n\nIt's not the job of libcamera to teach people about DMA ... but it's the\njob of *any documentation* to clearly reference and define all of it's\nterms. So I honestly think this is a good idea.\n\nI'd even go a step further and put a short brief (or external link to\nfurther information like wikipedia) to each term. But I haven't checked\nhow it will look in the output yet.\n\n> \n> \n> > diff --git a/Documentation/index.rst b/Documentation/index.rst\n> > index 8109b4295c92d722a2a215b97fd50af2f9babb9c..2eb0b894f1139d43389b2b450be003b054f6e335 100644\n> > --- a/Documentation/index.rst\n> > +++ b/Documentation/index.rst\n> > @@ -21,6 +21,7 @@\n> >\n> >     Contribute <contributing>\n> >     Getting Started <getting-started>\n> > +   Glossary <glossary>\n> >     Camera Sensor Model <camera-sensor-model>\n> >     IPA Writer's guide <guides/ipa>\n> >     libcamera Architecture <libcamera_architecture>\n> > diff --git a/Documentation/meson.build b/Documentation/meson.build\n> > index 51899c19c1667c8ac07c6e7776e1faaa14915e20..158825e398c48f41fbfebe4b4ac7afecb1a5b2a2 100644\n> > --- a/Documentation/meson.build\n> > +++ b/Documentation/meson.build\n> > @@ -161,6 +161,7 @@ if sphinx.found()\n> >          'guides/ipa.rst',\n> >          'guides/pipeline-handler.rst',\n> >          'guides/tracing.rst',\n> > +        'glossary.rst',\n> >          'index.rst',\n> >          'internal-api/index.rst',\n> >          'introduction.rst',\n> >\n> > --\n> > 2.51.1\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 81604BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Dec 2025 09:39:41 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 75A5E61FB4;\n\tMon, 29 Dec 2025 10:39:40 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 162DF615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Dec 2025 10:39:38 +0100 (CET)","from pendragon.ideasonboard.com\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 D02FC766;\n\tMon, 29 Dec 2025 10:39:22 +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=\"Clpu//nW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1767001162;\n\tbh=gA0u+zU00dnPila2ZHO+4YwQbWzqtE6K9Kgi0w6qW7s=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=Clpu//nWvyuJhp7JvkDpkKXR24V7CnIv3IoPdnWIXpU1UWUvGimtLncgLx8WQ9+0j\n\tmMR+LifYNq/1ZFSl671V6nbgYZZolI5XA9l0Qn0rSL/Rg8uiFOKDK74Dtlb67mumLD\n\t/NEgKrK6wlww7/lLZkOIOOKccJKPqLGe8MUrIPYk=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<cn2pkpkjdayf4eq4rer5o534jfkeyqeewu724as6aygsayv4g6@zclf4ywhdq3h>","References":"<20251219-glossary-page-v1-0-971ba0ab4b2f@schnwalter.eu>\n\t<20251219-glossary-page-v1-1-971ba0ab4b2f@schnwalter.eu>\n\t<cn2pkpkjdayf4eq4rer5o534jfkeyqeewu724as6aygsayv4g6@zclf4ywhdq3h>","Subject":"Re: [PATCH 1/2] Documentation: add glossary page","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tWalter Werner Schneider <contact@schnwalter.eu>","Date":"Mon, 29 Dec 2025 09:39:35 +0000","Message-ID":"<176700117549.21426.12872672199167542314@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":37485,"web_url":"https://patchwork.libcamera.org/comment/37485/","msgid":"<38127084-b363-469b-baae-7e75d49495ad@ideasonboard.com>","date":"2026-01-05T17:52:43","subject":"Re: [PATCH 1/2] Documentation: add glossary page","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 12. 29. 10:39 keltezéssel, Kieran Bingham írta:\n> Hi Walter,\n> \n> Thank you for working on this.\n> \n> Quoting Jacopo Mondi (2025-12-23 11:02:09)\n>> Hi Walter,\n>>\n>> On Fri, Dec 19, 2025 at 09:06:30PM +0200, Walter Werner Schneider wrote:\n>>> The page currently contains acronyms and abbreviations commonly used\n>>> troughout libcamera and related projects, but can be expanded to also\n>>> explain technical terms.\n>>\n>> Thanks, as said on irc I'm in two minds about this.\n> \n> I think this is a positive and helpful contribution.\n\nI also think it can be useful.\n\n\n> \n>> On one side, I clearly understand it might be helpful to newcomers to\n>> navigate the code base and documentation. On the other hand, most\n>> concepts here are not libcamera specific, and just providing an\n>> explanation for the acronym might not be sufficient to clarify the\n>> concepts in full.\n> \n> It might not be fully describing the concepts, but it's at least more\n> clearly expanding the definition to /our/ usage. As you stated below -\n> sometimes TLAs (The literal abbreviations) can be MUA\n> (Multi-use-acronyms) and at the very least a DUI (defined ultimate\n> intent) can prevent them from being misconstrued.\n> \n> \n>> On some terms, specifically the ones that refers to standards, just\n>> spelling the names out might even be confusing. See below\n> \n> I'm not sure I understand this how can spelling out the names be more\n> confusing than just leaving an ambiguity ?\n> \n>>\n>>>\n>>> Signed-off-by: Walter Werner Schneider <contact@schnwalter.eu>\n>>> ---\n>>>   Documentation/glossary.rst | 158 +++++++++++++++++++++++++++++++++++++++++++++\n>>>   Documentation/index.rst    |   1 +\n>>>   Documentation/meson.build  |   1 +\n>>>   3 files changed, 160 insertions(+)\n>>>\n>>> diff --git a/Documentation/glossary.rst b/Documentation/glossary.rst\n>>> new file mode 100644\n>>> index 0000000000000000000000000000000000000000..d8679a1148d2b520c301891745e78f5033b1235d\n>>> --- /dev/null\n>>> +++ b/Documentation/glossary.rst\n>>> @@ -0,0 +1,158 @@\n> [...]\n>>\n>> First time I see this one :)\n>>\n>>> +\n>>> +   WDR\n>>> +      Wide Dynamic Range\n>>\n>> I'm not sure.. Again, I understand why it might be useful, but it\n>> feels there are a lot terms there which either refers to standards,\n>> informal acronyms, driver names.. it's a bit mixed.. maybe it's just\n>> what a glossary should look like.\n> \n> Assuming doxygen will handle all the :term:`TLA` links here - I don't\n> think the mix matters. It's just the database to store all of the\n> defintions or expansions of any term we use which merits a bit of\n> context. And if a user has come in and said \"I don't know what this term\n> refers to in the context of libcamera\" that would automatically make it\n> appropriate to explain in my view.\n> \n> \n> \n>> In general, I'm a bit skeptical on the idea of trying to create\n>> definitions for things 'bigger' than libcamera. It's not the job of\n>> a software library to provide a knowledge base for imaging concepts\n>> and technologies, as the risk of providing incomplete/misleading\n>> information is higher than the benefit. Here we have just terms, so\n>> the risk of mis-guiding people is low, but still it feels\n>> underspecified for some entries (standards in particular).\n>>\n>> What do the others think ?\n> \n> It's not the job of libcamera to teach people about DMA ... but it's the\n> job of *any documentation* to clearly reference and define all of it's\n> terms. So I honestly think this is a good idea.\n> \n> I'd even go a step further and put a short brief (or external link to\n> further information like wikipedia) to each term. But I haven't checked\n> how it will look in the output yet.\n\nI believe that makes a lot of sense, most people will probably make a\nsearch for a new term in any case, so directing them to a useful resource\nseems a good addition.\n\n\nRegards,\nBarnabás Pőcze\n\n\n> \n>>\n>>\n>>> diff --git a/Documentation/index.rst b/Documentation/index.rst\n>>> index 8109b4295c92d722a2a215b97fd50af2f9babb9c..2eb0b894f1139d43389b2b450be003b054f6e335 100644\n>>> --- a/Documentation/index.rst\n>>> +++ b/Documentation/index.rst\n>>> @@ -21,6 +21,7 @@\n>>>\n>>>      Contribute <contributing>\n>>>      Getting Started <getting-started>\n>>> +   Glossary <glossary>\n>>>      Camera Sensor Model <camera-sensor-model>\n>>>      IPA Writer's guide <guides/ipa>\n>>>      libcamera Architecture <libcamera_architecture>\n>>> diff --git a/Documentation/meson.build b/Documentation/meson.build\n>>> index 51899c19c1667c8ac07c6e7776e1faaa14915e20..158825e398c48f41fbfebe4b4ac7afecb1a5b2a2 100644\n>>> --- a/Documentation/meson.build\n>>> +++ b/Documentation/meson.build\n>>> @@ -161,6 +161,7 @@ if sphinx.found()\n>>>           'guides/ipa.rst',\n>>>           'guides/pipeline-handler.rst',\n>>>           'guides/tracing.rst',\n>>> +        'glossary.rst',\n>>>           'index.rst',\n>>>           'internal-api/index.rst',\n>>>           'introduction.rst',\n>>>\n>>> --\n>>> 2.51.1\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 CF2A0BDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  5 Jan 2026 17:52:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DB3DD61F9F;\n\tMon,  5 Jan 2026 18:52:49 +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 D54E561F35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  5 Jan 2026 18:52:47 +0100 (CET)","from [192.168.33.33] (185.221.143.114.nat.pool.zt.hu\n\t[185.221.143.114])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E601914C7;\n\tMon,  5 Jan 2026 18:52:26 +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=\"goGKPx3l\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1767635547;\n\tbh=AUsu/lnq2Fa0Anv/vBG95bM4Q8mFq+8iyyR88HzWBtI=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=goGKPx3letGrsXrKiQ1oq7KlFZe8fRbWKWXYCMhxCLKIrK///lJ4RkHQ2k4bT8GxJ\n\t0m6jwjL2DIurLKzoQiJrpyvkl/h9FbZqQ1Q9uPQJr7wbVmWC/BuGyCpW9+5kjiHDhR\n\thUM4+1Jg1Vfrtc5BlyC8/RgAMaUv68TTTMUD9lVU=","Message-ID":"<38127084-b363-469b-baae-7e75d49495ad@ideasonboard.com>","Date":"Mon, 5 Jan 2026 18:52:43 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 1/2] Documentation: add glossary page","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tJacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tWalter Werner Schneider <contact@schnwalter.eu>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20251219-glossary-page-v1-0-971ba0ab4b2f@schnwalter.eu>\n\t<20251219-glossary-page-v1-1-971ba0ab4b2f@schnwalter.eu>\n\t<cn2pkpkjdayf4eq4rer5o534jfkeyqeewu724as6aygsayv4g6@zclf4ywhdq3h>\n\t<4l6c3ti3WRoJELjuukoMcd4L6vENJES3s5o5qPC9ixltfdrTmQbqUrV-YiUa0htuBxxnDyrQoMuRjud90BHsCQ==@protonmail.internalid>\n\t<176700117549.21426.12872672199167542314@ping.linuxembedded.co.uk>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<176700117549.21426.12872672199167542314@ping.linuxembedded.co.uk>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>"}}]