[libcamera-devel] [PATCH 7/9] fixup: Rework flickerless transition mode

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Wed Aug 3 16:43:14 CEST 2022


On Fri, Jul 01, 2022 at 05:46:59PM +0200, Jacopo Mondi wrote:
> Re-work the introduction text.
> 
> This might seems arbitrary but the new text provides a bit more context.
> 
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>

Acked-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/libcamera/control_ids.yaml | 32 ++++++++++++++++++++++++--------
>  1 file changed, 24 insertions(+), 8 deletions(-)
> 
> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> index e6676a149795..225377cf9e76 100644
> --- a/src/libcamera/control_ids.yaml
> +++ b/src/libcamera/control_ids.yaml
> @@ -218,19 +218,35 @@ controls:
>          The set of ExposureTimeMode modes that are supported by the camera must
>          have an intersection with the supported set of AnalogueGainMode modes.
>  
> -        As it takes a few frames to apply the exposure time, there is a period of
> -        time between submitting a request with ExposureTimeMode set to Manual
> -        and the exposure time component of the AE actually being disabled,
> -        during which the AE algorithm can still update the exposure time. If an
> -        application is switching from automatic and manual control and wishes
> -        to eliminate any flicker during the switch, the following procedure is
> -        recommended.
> +        Flickerless exposure mode transitions
> +
> +        Applications that transition from ExposureTimeModeAuto to the direct
> +        control of the exposure time should aim to do so by selecting an
> +        ExposureTime value as close as possible to the last value computed by
> +        the auto exposure algorithm in order to avoid any visible flickering.
> +
> +        To select the correct value to use as ExposureTime value, applications
> +        should accommodate the natural delay in applying controls caused by the
> +        capture pipeline frame depth.
> +
> +        When switching to manual exposure mode, applications should not
> +        immediately specify an ExposureTime value in the same request where
> +        ExposureTimeMode is set to Manual. They should instead wait for the
> +        first Request where ExposureTimeMode is reported as
> +        ExposureTimeModeManual in the Request metadata, and use the reported
> +        ExposureTime to populate the control value in the next Request to be
> +        queued to the Camera.
> +
> +        The implementation of the auto-exposure algorithm should equally try to
> +        minimize flickering and when transitioning from manual exposure mode to
> +        auto exposure use the last value provided by the application as starting
> +        point.
>  
>          1. Start with ExposureTimeMode set to Auto
>  
>          2. Set ExposureTimeMode to Manual
>  
> -        3. Wait for the first request to be output that has ExposureTimeMode
> +        3. Wait for the first completed request that has ExposureTimeMode
>          set to Manual
>  
>          4. Copy the value reported in ExposureTime into a new request, and
> -- 
> 2.36.1
> 


More information about the libcamera-devel mailing list