RidgeRun Auto exposure/Auto white balance library for DM368 and DM365
Introduction
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 white balance automatically compensates color differences based on lighting so white actually appears white.
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:
- 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.
- 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:
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