[PATCH v3 6/6] ipa: simple: Report exposure in metadata

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jan 27 17:35:10 CET 2025


Hi Milan,

On Mon, Jan 27, 2025 at 01:44:05PM +0100, Milan Zamazal wrote:
> Laurent Pinchart writes:
> > On Mon, Jan 13, 2025 at 02:34:05PM +0100, Milan Zamazal wrote:
> >> Report the exposure+gain in metadata.
> >> 
> >> The exposure value is especially dubious because it should be in
> >> microseconds but it's handled using V4L2_CID_EXPOSURE control, which
> >> doesn't specify the unit, see
> >> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/control.html.
> >
> > Please convert it to the right unit.
> 
> But what's the original unit?  It's unspecified in the link above:
> 
>   V4L2_CID_EXPOSURE (integer)
>     Exposure (cameras). [Unit?]
> 
> Is there any better source of information?

The camera helpers in libipa provide functions to convert exposure time
between time units and V4L2 control units. You can look at how rkisp1
handles that for instance.

> >> Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
> >> ---
> >>  src/ipa/simple/algorithms/agc.cpp | 7 ++++++-
> >>  1 file changed, 6 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp
> >> index 72aade14..ba7e7adc 100644
> >> --- a/src/ipa/simple/algorithms/agc.cpp
> >> +++ b/src/ipa/simple/algorithms/agc.cpp
> >> @@ -11,6 +11,8 @@
> >>  
> >>  #include <libcamera/base/log.h>
> >>  
> >> +#include "control_ids.h"
> >> +
> >>  namespace libcamera {
> >>  
> >>  LOG_DEFINE_CATEGORY(IPASoftExposure)
> >> @@ -99,8 +101,11 @@ void Agc::process(IPAContext &context,
> >>  		  [[maybe_unused]] const uint32_t frame,
> >>  		  [[maybe_unused]] IPAFrameContext &frameContext,
> >>  		  const SwIspStats *stats,
> >> -		  [[maybe_unused]] ControlList &metadata)
> >> +		  ControlList &metadata)
> >>  {
> >> +	metadata.set(controls::ExposureTime, frameContext.sensor.exposure);
> >> +	metadata.set(controls::AnalogueGain, frameContext.sensor.gain);
> >> +
> >>  	/*
> >>  	 * Calculate Mean Sample Value (MSV) according to formula from:
> >>  	 * https://www.araa.asn.au/acra/acra2007/papers/paper84final.pdf

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list