RidgeRun Auto exposure/Auto white balance library for DM368 and DM365

From RidgeRun Developer Connection

(Difference between revisions)
Jump to:navigation, search
Line 1: Line 1:
= Introduction =
= Introduction =
-
 
Video capture quality can be enhance with image processing, like auto white balance(AWB) and auto exposure algorithms(AE):
Video capture quality can be enhance with image processing, like auto white balance(AWB) and auto exposure algorithms(AE):
*Auto exposure performs automatic adjustments of the image brightness according to the amount of light that reaches the camera sensor.
*Auto exposure performs automatic adjustments of the image brightness according to the amount of light that reaches the camera sensor.
Line 9: Line 8:
= Design =
= Design =
Three applications are required to support the auto exposure and auto white-balance (AEW) adjustments:
Three applications are required to support the auto exposure and auto white-balance (AEW) adjustments:
-
*Ipiped, a DBus server for controlling and configuring the camera sensor, the dm365 video processor and the aew library.
+
*Ipiped, a D-Bus server for controlling and configuring the camera sensor, the dm365 video processor and the aew library.
*Librraew, a library that includes auto white balance and auto exposure algorithms.
*Librraew, a library that includes auto white balance and auto exposure algorithms.
-
*Ipipe-client, an interactive console that can be used to invoke any of the methods supported by the Ipiped.  
+
*Ipipe-client, an D-Bus client that can be used to invoke any of the methods supported by the Ipiped.  
 +
 
 +
= Running Ipiped =
 +
Ipiped must run in background:
 +
<pre>
 +
ipiped &
 +
</pre>
 +
 
 +
Ipiped registers with D-Bus and waits until ipipe-client requests to execute a method.
 +
 
 +
= Running Ipipe-client =
 +
Ipipe-client is a Dbus client that use commands to invoke methods of the ipiped, so ipiped must be running to use ipipe-client. A command can required arguments depending of the functionality. Ipipe-client has two operation modes, you can ask to execute a single command or you can open an interactive console to execute a group of commands.   
 +
 
 +
To execute a single command, you can use the following command line syntax 
 +
<pre>
 +
ipipe-client <command> <argument 1> ... <argument n>
 +
</pre>
 +
 
 +
To get into the interactive console, you have to run ipipe-client without any command. Then to execute a command you only need to use the command and the required arguments.
 +
<pre>
 +
ipipe-client
 +
ipipe-client$ <command 1> <argument 1> ... <argument n>
 +
ipipe-client$ <command 2> <argument 1> ... <argument n>
 +
</pre>
 +
To quit the interactive console you can use quit or exit.
 +
 
 +
In order to know the commands that are available run:
 +
<pre>
 +
ipipe-client help
 +
</pre>
 +
or get into the interactive console and execute help.
 +
 
 +
This shows a description of each command, as follows:
 +
 
 +
<pre>
 +
Command                        Description
 +
 
 +
help                    Displays the help text for all the posible commands or a specific command.
 +
set-debug              Enable/Disable debug messages.
 +
init-aew                Initialize AEW algorithms.
 +
stop-aew                End AEW algorithm.
 +
shell                  Execute a shell command(shell_cmd) using interactive console.
 +
ping                    Show if ipipe-daemon is alive.
 +
quit                    Quit from the interactive console.
 +
exit                    Exit from the interactive console.
 +
get-video-processor    Show the video processor that is being used.
 +
get-sensor              Show the sensor that is being used.
 +
run-config-script      Execute a group of ipipe-client commands.
 +
set-previewer-mode      Configure previewer on continuous or one-shot mode.
 +
set-bayer-pattern      Sets R/Gr/Gb/B color pattern to the previewer.
 +
set-digital-gain        Sets red (R), green (G) and blue gains (G) on the ipipe.
 +
get-digital-gain        Returns the gain value for each color component(RGB).
 +
set-luminance          Brightness(Br) and contrast(C) adjustment.
 +
get-luminance          Returns the value of the Brightness(Br) and contrast(C) adjustment.
 +
flip-vertical          Flips the image vertically(on the sensor).
 +
flip-horizontal        Flips the image horizontally (on the sensor).
 +
set-exposure            Sets the effective shutter time  of the sensor for the light integration.
 +
get-exposure            Gets the exposure time of the sensor in us.
 +
set-sensor-gain        Sets red(R), green(G) and blue(B) gain directly on the sensor.
 +
get-sensor-gain        Gets sensor red(R), green(G) and blue(B).
 +
</pre>
 +
 
 +
If you want more detailed information about a command execute:
 +
<pre>
 +
ipipe-client help <command>
 +
</pre>
 +
 
 +
= Running Librraew =
 +
 
 +
Auto exposure and auto white balance adjustments can be started with an ipipe-client's command called init-aew. Init-aew requires some arguments to define the algorithms and other parameters. To see the list you can request for help that show you the list as follows:
-
== Overview of Ipiped ==
+
<pre>
-
== Overview of Ipipe-client ==
+
Command: init-aew
-
== Overview of Librraew ==
+
Syntax: init-aew <WB> <AE> <G> <EM> <T[us]> <fps> <seg> <width> <height>
 +
Description: Initialize AEW algorithms                                 
 +
Arguments:                                                             
 +
        WB: white balance algorithm, the options are:                 
 +
                G -for gray world algorithm                           
 +
                W -for retinex algorithm                               
 +
                N -for none                                           
 +
        AE: auto exposure algorithm, the options are                   
 +
                EC -for electronic centric                             
 +
                N -for none                                           
 +
        G: gain type, the options are:                                 
 +
                S -to use the sensor gain                             
 +
                D -to use the digital
 +
        EM: exposure metering method, the options are:
 +
                S -for spot metering that take into account the ligth
 +
                information of a small portion in the center of the
 +
                frame and the rest is ignored
 +
                P -for partial metering that take into account the
 +
                ligth information of a larger portion in the center
 +
                of the frame (10% - 15%) and the rest of the frame is ignored.
 +
                C -for center weighted metering that take into account
 +
                the ligth information coming from the entire frame with
 +
                emphasis placed on the center area
 +
                A -for average metering that take into account the ligth
 +
                information from the entire frame without weighting
 +
                SG -for segmented metering that divides the frame
 +
                on 6 pieces and weighting them to avoid backlighting
 +
        T: wait time in us, especifies the time between
 +
                algorithm ajustments, max value=1s=1000000us
 +
        fps: minimun frame rate
 +
        seg: frame segmentation factor, each frame is segmented into
 +
                regions, this factor represents the percentage of the
 +
                maximun number of posible regions
 +
        width: captured video/image horizontal size
 +
        height: captured video/image vertical size
 +
</pre>
 +
Also you can stop automatic adjustments with the command stop-aew
[[Category:Whitepaper]]
[[Category:Whitepaper]]

Revision as of 19:51, 18 March 2011

Contents

Introduction

Video capture quality can be enhance with image processing, like auto white balance(AWB) and auto exposure algorithms(AE):

Some camera sensors don't include auto white balance and/or auto exposure processing, so RidgeRun offers a library with AE and AWB algorithms for the Leopard Board DM365 and the 5Mpixel camera.

Design

Three applications are required to support the auto exposure and auto white-balance (AEW) adjustments:

Running Ipiped

Ipiped must run in background:

 ipiped &

Ipiped registers with D-Bus and waits until ipipe-client requests to execute a method.

Running Ipipe-client

Ipipe-client is a Dbus client that use commands to invoke methods of the ipiped, so ipiped must be running to use ipipe-client. A command can required arguments depending of the functionality. Ipipe-client has two operation modes, you can ask to execute a single command or you can open an interactive console to execute a group of commands.

To execute a single command, you can use the following command line syntax

 ipipe-client <command> <argument 1> ... <argument n>

To get into the interactive console, you have to run ipipe-client without any command. Then to execute a command you only need to use the command and the required arguments.

ipipe-client
ipipe-client$ <command 1> <argument 1> ... <argument n>
ipipe-client$ <command 2> <argument 1> ... <argument n>

To quit the interactive console you can use quit or exit.

In order to know the commands that are available run:

ipipe-client help

or get into the interactive console and execute help.

This shows a description of each command, as follows:

Command                         Description

help                    Displays the help text for all the posible commands or a specific command.
set-debug               Enable/Disable debug messages.
init-aew                Initialize AEW algorithms.
stop-aew                End AEW algorithm.
shell                   Execute a shell command(shell_cmd) using interactive console.
ping                    Show if ipipe-daemon is alive.
quit                    Quit from the interactive console.
exit                    Exit from the interactive console.
get-video-processor     Show the video processor that is being used.
get-sensor              Show the sensor that is being used.
run-config-script       Execute a group of ipipe-client commands.
set-previewer-mode      Configure previewer on continuous or one-shot mode.
set-bayer-pattern       Sets R/Gr/Gb/B color pattern to the previewer.
set-digital-gain        Sets red (R), green (G) and blue gains (G) on the ipipe.
get-digital-gain        Returns the gain value for each color component(RGB).
set-luminance           Brightness(Br) and contrast(C) adjustment.
get-luminance           Returns the value of the Brightness(Br) and contrast(C) adjustment.
flip-vertical           Flips the image vertically(on the sensor).
flip-horizontal         Flips the image horizontally (on the sensor).
set-exposure            Sets the effective shutter time  of the sensor for the light integration.
get-exposure            Gets the exposure time of the sensor in us.
set-sensor-gain         Sets red(R), green(G) and blue(B) gain directly on the sensor.
get-sensor-gain         Gets sensor red(R), green(G) and blue(B).

If you want more detailed information about a command execute:

ipipe-client help <command> 

Running Librraew

Auto exposure and auto white balance adjustments can be started with an ipipe-client's command called init-aew. Init-aew requires some arguments to define the algorithms and other parameters. To see the list you can request for help that show you the list as follows:

Command: init-aew
Syntax: init-aew <WB> <AE> <G> <EM> <T[us]> <fps> <seg> <width> <height>
Description: Initialize AEW algorithms                                  
Arguments:                                                              
        WB: white balance algorithm, the options are:                   
                G -for gray world algorithm                             
                W -for retinex algorithm                                
                N -for none                                             
        AE: auto exposure algorithm, the options are                    
                EC -for electronic centric                              
                N -for none                                             
        G: gain type, the options are:                                  
                S -to use the sensor gain                               
                D -to use the digital
        EM: exposure metering method, the options are:
                S -for spot metering that take into account the ligth
                information of a small portion in the center of the
                frame and the rest is ignored
                P -for partial metering that take into account the
                ligth information of a larger portion in the center
                of the frame (10% - 15%) and the rest of the frame is ignored.
                C -for center weighted metering that take into account
                the ligth information coming from the entire frame with
                emphasis placed on the center area
                A -for average metering that take into account the ligth
                information from the entire frame without weighting
                SG -for segmented metering that divides the frame
                on 6 pieces and weighting them to avoid backlighting
        T: wait time in us, especifies the time between
                algorithm ajustments, max value=1s=1000000us
        fps: minimun frame rate
        seg: frame segmentation factor, each frame is segmented into
                regions, this factor represents the percentage of the
                maximun number of posible regions
        width: captured video/image horizontal size
        height: captured video/image vertical size

Also you can stop automatic adjustments with the command stop-aew

Navigation
Toolbox