PDK API Guide for J721E
H3A Configuration

Introduction

This is VISS H3A Configuration file

Files

file  h3a_cfg.h
 Interface file for H3A module, Defines the structures / control operations that could be used to configure / control H3A module in VISS H3A is independent module, which takes input from RAWFE. This is why a separate interface file is used for controlling H3A.
 

Data Structures

struct  H3a_AfIirFiltConfig
 IIR Filter Configuration structure. More...
 
struct  H3a_AfFirFilrConfig
 FIR Filter Configuration structure. More...
 
struct  H3a_PaxelConfig
 Paxel/Window configuration structure Used to define paxel for AEWB and window for AF. More...
 
struct  H3a_AfConfig
 Structure for ISP H3A AF engine parameters. More...
 
struct  H3a_AewbConfig
 Structure for ISP H3A AEWB engine parameters. More...
 
struct  H3a_Config
 Structure for H3A configuration VPAC can output only one of AF or AEWB output. This structure is used for selecting H3A output module AF/AEWB and also used for for setting module configuration. When AF is enabled as an output module, only AF will be configured. Also when AEWB module is enabled/selected as an output module, only AEWB mdule will be configured. More...
 

Macros

#define H3A_AF_IIR_COEFF_MAX   (11U)
 Maximum IIR coefficients. More...
 
#define H3A_AF_FIR_COEFF_MAX   (5U)
 Maximum FIR coefficients. More...
 

H3A IOCTL macros

Control commands for H3A module in VISS Mainly used to set H3A AF/AEWB configuration

#define IOCTL_H3A_SET_CONFIG   (VHWA_IOCTL_H3A_IOCTL_BASE)
 Ioctl for setting H3A parameters. Only one of AF or AEWB module can be configured at a time. Only one of AF and AEWB can be enabled in the H3A module at a time for a frame. So this ioctl enables/supports only one of these modules. Refer to structure H3a_Config. More...
 
#define IOCTL_H3A_GET_AEWB_SIZE   (IOCTL_H3A_SET_CONFIG + 1U)
 Ioctl for Getting H3a output size for AF/AEWB module. Depending on the H3A AF/AEWB module enabled, it returns the output frame size. Refer to structure H3a_Config. More...
 

H3A Module, AF or AEWB

Defines the sub-modules with in H3A. Used to identify sub-module of interest.

#define H3A_MODULE_MIN   (0x0U)
 
#define H3A_MODULE_AF   (0x1U)
 
#define H3A_MODULE_AEWB   (0x2U)
 
#define H3A_MODULE_MAX   (0x3U)
 

RGB Bayer format for AF

Defines the sub-modules with in H3A. Used to identify sub-module of interest.

Caution: This macro values are directly used in configuring register

#define H3A_AF_RGBPOS_GR_GB   (0x0U)
 
#define H3A_AF_RGBPOS_RG_GB   (0x1U)
 
#define H3A_AF_RGBPOS_GR_BG   (0x2U)
 
#define H3A_AF_RGBPOS_RG_BG   (0x3U)
 
#define H3A_AF_RGBPOS_GG_RB   (0x4U)
 
#define H3A_AF_RGBPOS_RB_GG   (0x5U)
 
#define H3A_AF_RGBPOS_MAX   (0x6U)
 

AF Focus Value Accumulation Mode

Defines accumulation mode for the focus value Refer to specs for more details

Caution: This macro values are directly used in configuring register

#define H3A_AF_FV_MODE_SUM   (0x0U)
 
#define H3A_AF_FV_MODE_PEAK   (0x1U)
 
#define H3A_AF_FV_MODE_MAX   (0x2U)
 

Auto Focus Vertical Focus Mode

Defines vertical focus mode Refer to specs for more details

Caution: This macro values are directly used in configuring register

#define H3A_AF_VF_HORZ_ONLY   (0x0U)
 
#define H3A_AF_VF_VERT_HORZ   (0x1U)
 

AEWB Output Mode

Defines output mode for AEWB. Refer to specs for more details

Caution: This macro values are directly used in configuring register

#define H3A_AEWB_OUTPUT_MODE_SUM_SQR   (0x0U)
 
#define H3A_AEWB_OUTPUT_MODE_MIN_MAX   (0x1U)
 
#define H3A_AEWB_OUTPUT_MODE_SUM_ONLY   (0x2U)
 

Macro Definition Documentation

◆ IOCTL_H3A_SET_CONFIG

#define IOCTL_H3A_SET_CONFIG   (VHWA_IOCTL_H3A_IOCTL_BASE)

Ioctl for setting H3A parameters. Only one of AF or AEWB module can be configured at a time. Only one of AF and AEWB can be enabled in the H3A module at a time for a frame. So this ioctl enables/supports only one of these modules. Refer to structure H3a_Config.

Returns
FVID2_SOK on success, else error code.

◆ IOCTL_H3A_GET_AEWB_SIZE

#define IOCTL_H3A_GET_AEWB_SIZE   (IOCTL_H3A_SET_CONFIG + 1U)

Ioctl for Getting H3a output size for AF/AEWB module. Depending on the H3A AF/AEWB module enabled, it returns the output frame size. Refer to structure H3a_Config.

Returns
FVID2_SOK on success, else error code.

◆ H3A_AF_IIR_COEFF_MAX

#define H3A_AF_IIR_COEFF_MAX   (11U)

Maximum IIR coefficients.

◆ H3A_AF_FIR_COEFF_MAX

#define H3A_AF_FIR_COEFF_MAX   (5U)

Maximum FIR coefficients.

◆ H3A_MODULE_MIN

#define H3A_MODULE_MIN   (0x0U)

< AutoFocus module AutoFocus module

◆ H3A_MODULE_AF

#define H3A_MODULE_AF   (0x1U)

Auto Exposure and Auto White Balance Module

◆ H3A_MODULE_AEWB

#define H3A_MODULE_AEWB   (0x2U)

Max value, used internally for error checking

◆ H3A_MODULE_MAX

#define H3A_MODULE_MAX   (0x3U)

◆ H3A_AF_RGBPOS_GR_GB

#define H3A_AF_RGBPOS_GR_GB   (0x0U)

< The input Bayer format is GRGB The input Bayer format is RGGB

◆ H3A_AF_RGBPOS_RG_GB

#define H3A_AF_RGBPOS_RG_GB   (0x1U)

The input Bayer format is GRBG

◆ H3A_AF_RGBPOS_GR_BG

#define H3A_AF_RGBPOS_GR_BG   (0x2U)

The input Bayer format is RGBG

◆ H3A_AF_RGBPOS_RG_BG

#define H3A_AF_RGBPOS_RG_BG   (0x3U)

The input Bayer format is GGRB

◆ H3A_AF_RGBPOS_GG_RB

#define H3A_AF_RGBPOS_GG_RB   (0x4U)

The input Bayer format is RBGG

◆ H3A_AF_RGBPOS_RB_GG

#define H3A_AF_RGBPOS_RB_GG   (0x5U)

Max Value, used for error checking

◆ H3A_AF_RGBPOS_MAX

#define H3A_AF_RGBPOS_MAX   (0x6U)

◆ H3A_AF_FV_MODE_SUM

#define H3A_AF_FV_MODE_SUM   (0x0U)

< FV Accumulation mode is sum mode FV Accumulation mode is Peak mode

◆ H3A_AF_FV_MODE_PEAK

#define H3A_AF_FV_MODE_PEAK   (0x1U)

Max Value, used for error checking

◆ H3A_AF_FV_MODE_MAX

#define H3A_AF_FV_MODE_MAX   (0x2U)

◆ H3A_AF_VF_HORZ_ONLY

#define H3A_AF_VF_HORZ_ONLY   (0x0U)

< Vertical Focus mode is 4 color horizontal FV Only Vertical Focus mode is 1 color horizontal and 1 color vertical

◆ H3A_AF_VF_VERT_HORZ

#define H3A_AF_VF_VERT_HORZ   (0x1U)

◆ H3A_AEWB_OUTPUT_MODE_SUM_SQR

#define H3A_AEWB_OUTPUT_MODE_SUM_SQR   (0x0U)

< Output format is sum of square Output format is Min and Max Value

◆ H3A_AEWB_OUTPUT_MODE_MIN_MAX

#define H3A_AEWB_OUTPUT_MODE_MIN_MAX   (0x1U)

Output format is sum only

◆ H3A_AEWB_OUTPUT_MODE_SUM_ONLY

#define H3A_AEWB_OUTPUT_MODE_SUM_ONLY   (0x2U)