Message ID | 20230912142309.170720-2-david.plowman@raspberrypi.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Hi David, Thank you for this work. On Tue, 12 Sept 2023 at 15:23, David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org> wrote: > > The IqUnstable metadata can be used by IPAs to indicate to an > application that they have not settled sufficiently to produce > reliable image quality. Applications would be advised to avoid using > frames flagged in this way. > > One example would be when the camera starts, when the AEC/AGC might > oscillate for a few frames. > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> I do like this term better than the more generic startup frames we used before. FYI, I have implemented this control in the RPi pipeline handler that folks can peek at here: https://github.com/naushir/libcamera/tree/iq_stability Reviewed-by: Naushir Patuck <naush@raspberrypi.com> > --- > src/libcamera/control_ids.yaml | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml > index f2e542f4..b96e1272 100644 > --- a/src/libcamera/control_ids.yaml > +++ b/src/libcamera/control_ids.yaml > @@ -774,6 +774,26 @@ controls: > Continuous AF is paused. No further state changes or lens movements > will occur until the AfPauseResume control is sent. > > + - IqUnstable: > + type: bool > + description: | > + The value true indicates that the camera algorithms have not settled > + sufficiently to generate images of reliable quality. The application > + receiving this frame is advised to drop it and wait for a frame where > + this metadata reports false (or is absent). > + > + One example of this would be when the camera system starts. It may be > + trying to adapt very quickly to the ambient conditions, resulting in a > + few frames where the image brightness may be subject to unusually > + extreme oscillations. > + > + The control may report true at other times, for example when an HDR mode > + is enabled. Here too there may be a few frames of unpredictable exposure > + until the algorithms have settled. > + > + The value false (or absence of the control) indicates that this is a > + normal frame. > + > # ---------------------------------------------------------------------------- > # Draft controls section > > -- > 2.30.2 >
diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml index f2e542f4..b96e1272 100644 --- a/src/libcamera/control_ids.yaml +++ b/src/libcamera/control_ids.yaml @@ -774,6 +774,26 @@ controls: Continuous AF is paused. No further state changes or lens movements will occur until the AfPauseResume control is sent. + - IqUnstable: + type: bool + description: | + The value true indicates that the camera algorithms have not settled + sufficiently to generate images of reliable quality. The application + receiving this frame is advised to drop it and wait for a frame where + this metadata reports false (or is absent). + + One example of this would be when the camera system starts. It may be + trying to adapt very quickly to the ambient conditions, resulting in a + few frames where the image brightness may be subject to unusually + extreme oscillations. + + The control may report true at other times, for example when an HDR mode + is enabled. Here too there may be a few frames of unpredictable exposure + until the algorithms have settled. + + The value false (or absence of the control) indicates that this is a + normal frame. + # ---------------------------------------------------------------------------- # Draft controls section
The IqUnstable metadata can be used by IPAs to indicate to an application that they have not settled sufficiently to produce reliable image quality. Applications would be advised to avoid using frames flagged in this way. One example would be when the camera starts, when the AEC/AGC might oscillate for a few frames. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> --- src/libcamera/control_ids.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)