Application Note: Enabling Manual 3A Features 80 NU119 1

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 16

DownloadApplication Note: Enabling Manual 3A Features 80 NU119 1
Open PDF In BrowserView PDF
Enabling Manual 3A Features
Application Note
80-NU119-1 A
November 19, 2014

Submit technical questions at:
https://support.cdmatech.com/

Confidential and Proprietary – Qualcomm Technologies, Inc.
NO PUBLIC DISCLOSURE PERMITTED: Please report postings of this document on public servers or websites
to: DocCtrlAgent@qualcomm.com.
Restricted Distribution: Not to be distributed to anyone who is not an employee of either Qualcomm or its
subsidiaries without the express approval of Qualcomm’s Configuration Management.
Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others
without the express written permission of Qualcomm Technologies, Inc.
Qualcomm reserves the right to make changes to the product(s) or information contained herein without notice. No
liability is assumed for any damages arising directly or indirectly by their use or application. The information
provided in this document is provided on an “as is” basis.
This document contains confidential and proprietary information and must be shredded when discarded.
Qualcomm is a trademark of QUALCOMM Incorporated, registered in the United States and other countries. All
QUALCOMM Incorporated trademarks are used with permission. Other product and brand names may be
trademarks or registered trademarks of their respective owners.
This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion
contrary to U.S. and international law is strictly prohibited.
Qualcomm Technologies, Inc.
5775 Morehouse Drive
San Diego, CA 92121
U.S.A.
© 2014 Qualcomm Technologies, Inc.
All rights reserved.

Contents

1 Introduction...................................................................................................... 5
1.1 Purpose.......................................................................................................................... 5
1.2 Conventions .................................................................................................................. 5
1.3 References..................................................................................................................... 5
1.4 Technical assistance ...................................................................................................... 5
1.5 Acronyms ...................................................................................................................... 5

2 Manual 3A Features ......................................................................................... 6
2.1 Manual exposure control............................................................................................... 6
2.1.1 ISO priority ........................................................................................................ 7
2.1.2 Exposure time priority ....................................................................................... 8
2.1.3 User setting ...................................................................................................... 10
2.2 Manual white balance ................................................................................................. 10
2.2.1 Color temperature ............................................................................................ 11
2.2.2 RGB gains........................................................................................................ 12
2.3 Manual focus............................................................................................................... 13
2.3.1 Scale mode ....................................................................................................... 14
2.3.2 Diopter mode ................................................................................................... 14
2.4 Reference paths ........................................................................................................... 15

80-NU119-1 A

2
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Contents

Tables
Table 1-1
Table 2-1
Table 2-2
Table 2-3
Table 2-4
Table 2-5
Table 2-6
Table 2-7
Table 2-8
Table 2-9

Reference documents and standards ............................................................................................ 5
Camera parameters ...................................................................................................................... 6
ISO priority parameters ............................................................................................................... 7
Exposure time priority parameters............................................................................................... 8
Manual white balance parameters ............................................................................................. 10
Color temperature camera parameters ....................................................................................... 11
RGB camera parameters ............................................................................................................ 12
Manual focus camera parameters .............................................................................................. 13
Scale mode camera parameters.................................................................................................. 14
Diopter mode camera parameters .............................................................................................. 14

Figures
Figure 2-1 Illustration of manual exposure feature .................................................................................... 16

80-NU119-1 A

3
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Revision history
Revision

Date

A

Nov 2014

Description
Initial release

.

80-NU119-1 A

4
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

1 Introduction

1.1 Purpose
This document lists out the guidelines for application developers to enable manual 3A features.

1.2 Conventions
Function declarations, function names, type declarations, and code samples appear in a different
font, e.g., #include.
Code variables appear in angle brackets, e.g., .

1.3 References
Reference documents are listed in Table 1-1. Reference documents that are no longer applicable
are deleted from this table; therefore, reference numbers may not be sequential.
Table 1-1 Reference documents and standards
Ref.

Document

Qualcomm Technologies
Q1

Application Note: Software Glossary for Customers

CL93-V3077-1

1.4 Technical assistance
For assistance or clarification on information in this document, submit a case to Qualcomm
Technologies, Inc. (QTI) at https://support.cdmatech.com/.
If you do not have access to the CDMATech Support website, register for access or send email to
support.cdmatech@qti.qualcomm.com.

1.5 Acronyms
For definitions of terms and abbreviations, see [Q1].

80-NU119-1 A

5
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

2 Manual 3A Features

Manual 3A is supported in non-ZSL mode with no other configuration settings like AE
bracketing, HDR, Scene mode, brightness, flash, anti-banding and face priority, and Camcorder.
The manual white balance and focus settings are applied in both non-ZSL preview and snapshot,
however, the manual exposure settings take effect only in snapshot.
NOTE:

These features are sensor dependent and would need changes in sensor driver code and exposure
capabilities. The support range for exposure time, ISO, and focus depends upon the sensor and
actuator capabilities.
The following are the Manual 3A features:


Manual exposure control



Manual white balance



Manual focus

2.1 Manual exposure control
The following modes are supported in manual exposure control feature:

NOTE:



ISO priority – User must provide ISO but exposure time is auto calculated by AEC.



Exposure time priority – User must provide exposure time but ISO is auto calculated by AEC
algorithm.



User-provided ISO and exposure time – This mode is fully manual. Both ISO and exposure
time directly taken from user input, but no auto calculation is involved.

Settings are applied to snapshot only. Camera preview remains unchanged.
The following table explains the supported manual exposure modes queried from camera
parameters:
Table 2-1 Camera parameters
Purpose

Camera parameter

To check for
supported
manual
exposure
modes

manual-exposure-modes

80-NU119-1 A

Value/Result(s)
Off, ISO-priority, exp-time-priority, user-setting – If any
of the modes is not supported, corresponding entry is
excluded in the query result. In such cases, it is
suggested that the corresponding entry is removed in
the application UI as well.

6
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

2.1.1 ISO priority
In legacy/existing ISO feature, the user can set only discrete ISO values such as 200, 400, and
1600. However, in the new ISO-priority (or continuous ISO) mode, user is able to set any value
between minimum ISO until the maximum ISO supported by the sensor.
Table 2-2 ISO priority parameters
Purpose

Parameter string

Value

Minimum ISO

min-iso

Depends on sensor capability

Maximum ISO

max-iso

Depends on sensor capability

Set continuous ISO

continuous-iso

Any integer within the supported range

Get preview ISO

cur-iso

Retrieves the ISO to be applied for preview. The ISO is
used as a reference value for the user to set appropriate
ISO in snapshot.

Application settings
1. Set legacy ISO mode to manual.
2. Set continuous ISO to appropriate value.
3. Set Exposure time to 0 (auto exposure).

Sample code
Int minISO = mParameters.getInt(“min-iso”);
Int maxISO = mParameters.getInt(“max-iso”);
Int userinput;
if( userinput >= minISO && userinput <= maxISO)
{
mParameters.set(“iso”,“manual”);
mParameters.setInt(“continuous-iso”, userinput);
mParameters.set(“exposure-time”,”0”);
mCameraDevice.setParameters(mParameters);
}

To switch back to legacy ISO mode, the legacy ISO parameter must be set to any of the discrete
values or ISO_AUTO. In such a case, the continuous ISO, even if set, is ignored.
Sensor driver engineers to ensure that the capabilities for ISO are filled appropriately in the
sensor driver structures from exposure table.

80-NU119-1 A

7
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

Reference driver path
/vendor/qcom/proprietary/mm-camera/mm-camera2/media
controller/modules/sensors/sensor_libs/imx135_lib.c

Sample code
static sensor_manual_exposure_info_t manual_exp_info = {
.min_exposure_time = 10587,/*in nano sec = 1line*/
.max_exposure_time = 693863262,/*in nano sec = FFFF lines*/
.min_iso = 100,
.max_iso = 800,
};

2.1.2 Exposure time priority
In this mode, the user can set any exposure time within the range supported by the sensor that is
used. ISO is set to Auto in this mode.
Table 2-3 Exposure time priority parameters
Purpose

Parameter string

Value

Minimum exposure time

min-exposure-time

Depends on sensor capability

Maximum exposure time

max-exposure-time

Depends on sensor capability

Set exposure time

exposure-time

Any float value within the supported range.
If exposure time is zero, Auto-exposure mode is
enabled.

Get preview exposure time

NOTE:

cur-exposure-time

Retrieves the exposure time applied for
preview. The exposure time is used as a
reference value for the user to set appropriate
exposure time in snapshot.

All values are in milliseconds and are floating point numbers. If the user wants to set the
exposure time in other modes like for example, 1/5 sec, the application automatically converts it
into milliseconds when camera parameters are set.

80-NU119-1 A

8
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

Application settings
1. Set appropriate exposure time in milliseconds.
2. Set ISO to Auto mode.

Sample code
final String minExpTime = mParameters.get(“min-exposure-time”);
final String maxExpTime = mParameters.get(“max-exposure-time”);
double userIinput; //in millisec
if (userIinput <= Double.parseDouble(maxExpTime) &&
userIinput >= Double.parseDouble(minExpTime)) {
mParameters.set(“exposure-time”, userIinput);
mParameters.set(“iso”,”auto”);
mCameraDevice.setParameters(mParameters);
}

Sensor driver engineers to make sure that the capabilities of Exposure time is filled appropriately
in the sensor driver structures as per sensor vendor recommendations. Some sensors also can
support long exposure times that must be programmed to the respective sensor drivers. For
simplicity and back ward compatibility a new variable, use_long_exposure in sensor_exp_info
structure is introduced. The following is the sample code.

Reference driver path
/vendor/qcom/proprietary/mm-camera/mm-camera2/media
controller/modules/sensors/sensor_libs/imx135_lib.c

Sample code
static sensor_manual_exposure_info_t manual_exp_info = {
.min_exposure_time = 10587,/*in nano sec = 1line*/
.max_exposure_time = 693863262,/*in nano sec = FFFF lines*/
.min_iso = 100,
.max_iso = 800,
};
static int32_t imx135_calculate_exposure(float real_gain,
uint32_t line_count,
sensor_exposure_info_t* exp_info) {
if (!exp_info) {
return -1;
}
if(exp_info->use_long_exposure == 1) {
exp_info->long_line_count = line_count;
}
else {
exp_info->line_count = line_count & 0xFFFF;
}

80-NU119-1 A

9
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

2.1.3 User setting
In ISO priority mode, the ISO is manually set. However, the exposure time is auto-calculated. In
the Exposure time priority mode, the exposure time is manually set but the ISO is in Auto mode.
In the User setting mode, both the ISO and exposure must be set manually. The camera
parameters remain the same as in ISO priority and Exposure time priority modes.

Sample code
final String minExpTime = mParameters.get(“min-exposure-time”);
final String maxExpTime = mParameters.get(“max-exposure-time”);
Int minISO = mParameters.getInt(“min-iso”);
Int maxISO = mParameters.getInt(“max-iso”);
Int userISOinput;
double userExpTimeIinput; //in millisec
if (userExpTimeIinput <= Double.parseDouble(maxExpTime) &&
userExpTimeIinput >= Double.parseDouble(minExpTime) &&
userISOinput >= minISO && userISOinput <= maxISO) {
mParameters.set(“exposure-time”, userIinput);
mParameters.set(“iso”,“manual”);
mParameters.setInt(“continuous-iso”, userinput);
mCameraDevice.setParameters(mParameters);
}

2.2 Manual white balance
The following modes are supported in manual white balance feature:


Color temperature (CCT)



RBGB gains

These settings are applied to preview and snapshot.

Application settings
1. Set White balance mode to Manual mode.
2. Set manual white balance type to CCT or RBGB
3. Set appropriate value in CCT or RBGB.
To turn off manual white balance (WB), change White balance mode to Auto or any other mode.
Table 2-4 Manual white balance parameters
Purpose
To check for supported manual white
balance modes

80-NU119-1 A

Parameter string
manual-wb-modes

Value/Result
Off, color-temperature, rbgb-gains – The
manual white balance for bayer sensors is
by default supported. For YUV sensors,
there is no support and hence the result to
this query would be only “off”.

10
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

Purpose

Parameter string

Value/Result

To set manual white balance type

manual-wb-type

0 for CCT mode, 1 for RBGB gain mode

To set manual white balance value

manual-wb-value

User input in CCT or RBGB gain mode –
Valid input, input format, and supported
range for each mode is explained in the
next sections.

2.2.1 Color temperature
In the color temperature mode, the color temperature between minimum CCT and maximum CCT
can be set depending on the camera capabilities.
Table 2-5 Color temperature camera parameters
Purpose

Camera parameter

Value

Minimum CCT

min-wb-cct

2000 (hardcoded in HAL)

Maximum CCT

max-wb-cct

8000 (hardcoded in HAL)

Get current WB in CCT

wb-manual-cct

Get current white balance in CCT

Sample code
Int minCCT = mParameters.getInt(“min-wb-cct”);
Int maxCCT = mParameters.getInt(“max-wb-cct”);
Int userinput = 5000;

If (userInput <= maxCCT && userInput >= minCCT) {
mParameters.setWhiteBalance(“manual”);
mParameters.set("manual-wb-type", 0);
mParameters.set("manual-wb-value", userinput);
mCameradevice.setparameters(mParameters);
}

80-NU119-1 A

11
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

2.2.2 RGB gains
In RGB gains mode, user can set R, G, B gains as a set in the range 1.0 to 4.0 (hardcoded for
now). Expected input format is “R_gain, G_gain, B_gain” as a string.
Table 2-6 RGB camera parameters
Purpose

Camera parameter

Value

Minimum gain

min-wb-gain

1.0 (hardcoded in HAL)

Maximum gain

max-wb-gain

4.0 (hardcoded in HAL)

Get current WB in RGB gain mode

manual-wb-gains

Get current RGB gains to be applied.
Result is in the format “R_gain, G_gain,
B_gain”, where each gain is a float value
in the range mentioned in previous
sections. For example, “2.5,3.0,1.0”

Sample code
String minGain = mParameters.get(“min-wb-gain”);
String maxGain = mParameters.get(“max-wb-gain”);
String userInput = “2.5,3.0,1.4”;
//parse user input and validate it with supported range
mParameters.setWhiteBalance(“manual”);
mParameters.set("manual-wb-type", 1);
mParameters.set("manual-wb-value", userinput);
mCameradevice.setparameters(mParameters);

NOTE:

There is no one-to-one mapping between CCT and R, G, and B gains. Based on 2-D interpolation
of R, G, and B weights, the current CCT value is calculated. So, it is expected that inputting the
same displayed CCT value results in different gains and the final effect is different to that of the
current preview.

NOTE:

Typically R and B gains are higher than G gain. Inputting equal gain values in manual R, G, and
B options results in green shade of preview/snapshot as there are two green channels in RGBG
Bayer grid. It is assumed that the user knows the Bayer grid pattern and inputs the gains
accordingly.

80-NU119-1 A

12
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

2.3 Manual focus
The following modes are supported in the manual focus feature:


Scale mode (0-100 scale), zero meaning near distance.



Diopter-based – The diopter value in 1/meter (reciprocal of focal length) as a float value is
provided.

Application settings
1. Set Focus mode to manual.
2. Set focus type to scale or diopter.
3. Set focus position.
To turn off manual focus, change the Focus mode to other modes such as Auto, CAF, etc.
Table 2-7 Manual focus camera parameters
Purpose

Camera parameter

Value/Result

To check for supported
manual focus modes

manual-focus-modes

Off, scale-mode, diopter-mode

To set manual focus type

manual-focus-pos-type

2 for Scale mode, 3 for Diopter mode

To set manual focus position

manual-focus-position

User to input in Scale mode or Diopter
mode.
The Scale mode range is 0-100. It is
queried from camera parameters as well.
Input must be an integer.
Range for Diopter mode depends on
sensor and are queried from camera
parameters. Input is a float value.

80-NU119-1 A

13
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

2.3.1 Scale mode
Table 2-8 Scale mode camera parameters
Value

Camera parameter

Value

Minimum scale

min-focus-pos-ratio

0 (hardcoded in HAL)

Maximum scale

max-focus-pos-ratio

100 (hardcoded in HAL)

Get current focus position in
scale mode

cur-focus-scale

Current focus position in the supported
range. This can be used as a reference
value for the user to know how much more
lens needs to be moved.

Sample code
int minFocus = mParameters.getInt("min-focus-pos-ratio");
int maxFocus = mParameters.getInt("max-focus-pos-ratio");
mParameters.setFocusMode("manual");
mParameters.set("manual-focus-pos-type", 2);
mParameters.set("manual-focus-position", 70);
mCameraDevice.setParameters(mParameters);

2.3.2 Diopter mode
Table 2-9 Diopter mode camera parameters
Purpose

Camera parameter

Value

Minimum diopter

min-focus-pos-diopter

0 (hardcoded in HAL)

Maximum diopter

max-focus-pos-diopter

Sensor dependent

Get current focus position in
Diopter mode

cur-focus-diopter

Current focus position in the supported
range. This can be used as a reference
value for the user to know how much more
lens needs to be moved.

Sample code
String minFocusStr = mParameters.get("min-focus-pos-diopter");
String maxFocusStr = mParameters.get("max-focus-pos-diopter");
final float minFocusPos = Float.parseFloat(minFocusStr);
final float maxFocusPos = Float.parseFloat(maxFocusStr);
mParameters.setFocusMode("manual");
mParameters.set("manual-focus-pos-type", 3);
mParameters.set("manual-focus-position", 4.5);
mCameraDevice.setParameters(mParameters);

80-NU119-1 A

14
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

Sensor driver engineers should fill the focus near end capability appropriately as per the
maximum capability of the actuator inside the sensor driver structure. The fare end is considered
to be INFINITY by default.

Reference driver path
/vendor/qcom/proprietary/mm-camera/mm-camera2/media
controller/modules/sensors/sensor_libs/imx135_lib.c

Sample code
static sensor_lens_info_t default_lens_info = {
.focal_length = 4.6,
.pix_size = 1.4,
.f_number = 2.65,
.total_f_dist = 1.97,
.hor_view_angle = 54.8,
.ver_view_angle = 42.5,
.near_end_distance = 10,/*in cm*/
};

2.4 Reference paths
Sample implementation of Manual 3A in application layer can be referenced at the following
paths (based on the Android version):


Lollipop – \packages\apps\SnapdragonCamera\src\com\android\camera\PhotoModule.java



Kitkat – \packages\apps\Camera2\src\com\android\camera\PhotoModule.java

Core functions which do necessary settings (common in both Android versions):
UpdateManualExposureSettings()
UpdateManualWBSettings()
UpdateManualFocusSettings()

NOTE:

In the reference implementation, all Manual 3A settings are turned off (get reset to default) when
camera application is closed.

80-NU119-1 A

15
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

Manual 3A Features

Test example for manual exposure
Figure 2-1 gives an illustration of manual exposure feature tested with different options under
same lighting conditions.
This set of snaps were taken using a tripod in dark lighting conditions with a sensor that supports
long exposure times (up to 86 sec with QTI test sensor).

Figure 2-1 Illustration of manual exposure feature

80-NU119-1 A

16
Confidential and Proprietary – Qualcomm Technologies, Inc.
MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Encryption                      : Standard V2.3 (128-bit)
User Access                     : Print, Modify, Copy, Annotate, Fill forms, Print high-res
Keywords                        : November, 2014
Tag Email Subject               : hot- downloaded now <>
Content Type Id                 : 0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390074929ACCF5926F4B8F0AF3045F45E946
Tag New Review Cycle            : 
Modify Date                     : 2017:07:18 20:09:04-07:00
Create Date                     : 2014:11:19 15:03:13+05:30
Tag Author Email Display Name   : Plakkatt, Sindhu
Tag Ad Hoc Review Cycle ID      : 1216126803
Tag Reviewing Tools Shown Once  : 
Source Modified                 : D:20141119093131
Author                          : 
Tag Author Email                : sindhup@qti.qualcomm.com
Dlc Doc Id Item Guid            : eeb85f2c-8cbc-4396-b379-ff27c696f000
Company                         : Qualcomm, Incorporated
Page Mode                       : UseOutlines
Page Layout                     : SinglePage
Format                          : application/pdf
Description                     : 80-NU119-1_A_Enabling_Manual_3A_Features.pdf
Subject                         : 80-NU119-1_A_Enabling_Manual_3A_Features.pdf
Title                           : Application Note: Enabling Manual 3A Features
Creator                         : 
Producer                        : Adobe PDF Library 11.0; modified using iText 2.1.7 by 1T3XT; modified using iText® 5.4.0 ©2000-2012 1T3XT BVBA (AGPL-version)
Creator Tool                    : Acrobat PDFMaker 11 for Word
Language                        : EN-US
Tagged PDF                      : Yes
Page Count                      : 16
EXIF Metadata provided by EXIF.tools

Navigation menu