TIOVX User Guide
TI VPAC VISS (Vision Imaging Sub System) Kernel APIs

Detailed Description

VPAC Vision Imaging Sub System Kernels.

Modules

 Enumerations
 Enumerations for configuration parameters in VPAC VISS structures.
 
 Enumerations
 Enumerations for configuration output routing in VPAC VISS structures.
 
 Enumerations
 Enumerations for configuration parameters in VPAC VISS FCP structure.
 

Data Structures

struct  tivx_ae_awb_params_t
 Data corresponding to results of 2A algorithm. More...
 
struct  tivx_h3a_aew_config
 H3A AEW configuration data structure used by the TIVX_KERNEL_VISS kernel. More...
 
struct  tivx_h3a_data_t
 The h3a_output data structure used by the TIVX_KERNEL_VISS kernel. More...
 
struct  tivx_vpac_viss_params_t
 The configuration data structure used by the TIVX_KERNEL_VISS kernel. More...
 
struct  tivx_vpac_viss_fcp_params_t
 The Flex Color Processing (FCP) data structure used in the tivx_vpac_viss_params_t structure for programming the TIVX_KERNEL_VISS kernel. More...
 

Defines

#define TIVX_KERNEL_VPAC_VISS_NAME   "com.ti.hwa.vpac_viss"
 vpac_viss kernel name
 
#define TIVX_VPAC_VISS_CMD_SET_DCC_PARAMS   (0x30000000u)
 Control Command to set the DCC (Dynamic Camera Configuration) information to the given VISS Node. More...
 
#define TIVX_VPAC_VISS_MAX_H3A_STAT_NUMBYTES   (24576U)
 Maximum H3A number of bytes in statistics data array. More...
 
#define TIVX_VPAC_VISS_H3A_OUT_BUFF_ALIGN   (64U)
 The H3A output memory address alignment. More...
 

Functions

void tivxRegisterHwaTargetVpacVissKernels (void)
 Function to register HWA Kernels on the vpac_viss Target.
 
void tivxUnRegisterHwaTargetVpacVissKernels (void)
 Function to un-register HWA Kernels on the vpac_viss Target.
 
void tivx_vpac_viss_params_init (tivx_vpac_viss_params_t *prms)
 Function to initialize VISS Parameters. More...
 
void tivx_h3a_data_init (tivx_h3a_data_t *prms)
 Function to initialize H3A data Parameters. More...
 
void tivx_ae_awb_params_init (tivx_ae_awb_params_t *prms)
 Function to initialize AEWB Output Parameters These parameters come from the AEWB algorithm. More...
 
void tivx_h3a_aew_config_init (tivx_h3a_aew_config *prms)
 Function to initialize H3A aew Config. More...
 
VX_API_ENTRY vx_node VX_API_CALL tivxVpacVissNode (vx_graph graph, vx_user_data_object configuration, vx_user_data_object ae_awb_result, vx_user_data_object dcc_buf, tivx_raw_image raw, vx_image output0, vx_image output1, vx_image output2, vx_image output3, vx_image output4, vx_user_data_object h3a_output, vx_distribution histogram0, vx_distribution histogram1, vx_distribution raw_histogram)
 [Graph] Creates a VPAC_VISS Node. More...
 

Macro Definition Documentation

◆ TIVX_VPAC_VISS_CMD_SET_DCC_PARAMS

#define TIVX_VPAC_VISS_CMD_SET_DCC_PARAMS   (0x30000000u)

Control Command to set the DCC (Dynamic Camera Configuration) information to the given VISS Node.

Viss node gets the pointer to DCC buffer containing VISS configuration. It uses DCC parser to parse and map DCC parameters into VISS configuration and sets it in the driver.

Note that if the module is bypassed in tivx_vpac_viss_params_t during node creating, the parameter will not be set for this module, even through DCC profile has config for the same module.

User data object containing DCC buffer is passed as argument with this control command.

Definition at line 115 of file hwa_vpac_viss.h.

◆ TIVX_VPAC_VISS_MAX_H3A_STAT_NUMBYTES

#define TIVX_VPAC_VISS_MAX_H3A_STAT_NUMBYTES   (24576U)

Maximum H3A number of bytes in statistics data array.

Allocating 24KB buffer which is large enough for 32x32 windows

Definition at line 127 of file hwa_vpac_viss.h.

◆ TIVX_VPAC_VISS_H3A_OUT_BUFF_ALIGN

#define TIVX_VPAC_VISS_H3A_OUT_BUFF_ALIGN   (64U)

The H3A output memory address alignment.

The start address of the tivx_h3a_data_t::data buffer must be aligned to this value, so the tivx_h3a_data_t::resv field is used along with this value to properly pad the structure to enable this alignment.

See also
tivx_h3a_data_t::resv

Definition at line 138 of file hwa_vpac_viss.h.

Function Documentation

◆ tivx_vpac_viss_params_init()

void tivx_vpac_viss_params_init ( tivx_vpac_viss_params_t prms)

Function to initialize VISS Parameters.

Parameters
prms[in] Pointer to VISS parameters

◆ tivx_h3a_data_init()

void tivx_h3a_data_init ( tivx_h3a_data_t prms)

Function to initialize H3A data Parameters.

Parameters
prms[in] Pointer to H3A data parameters

◆ tivx_ae_awb_params_init()

void tivx_ae_awb_params_init ( tivx_ae_awb_params_t prms)

Function to initialize AEWB Output Parameters These parameters come from the AEWB algorithm.

Parameters
prms[in] Pointer to AEWB output parameters

◆ tivx_h3a_aew_config_init()

void tivx_h3a_aew_config_init ( tivx_h3a_aew_config prms)

Function to initialize H3A aew Config.

Parameters
prms[in] Pointer to H3A aew config

◆ tivxVpacVissNode()

VX_API_ENTRY vx_node VX_API_CALL tivxVpacVissNode ( vx_graph  graph,
vx_user_data_object  configuration,
vx_user_data_object  ae_awb_result,
vx_user_data_object  dcc_buf,
tivx_raw_image  raw,
vx_image  output0,
vx_image  output1,
vx_image  output2,
vx_image  output3,
vx_image  output4,
vx_user_data_object  h3a_output,
vx_distribution  histogram0,
vx_distribution  histogram1,
vx_distribution  raw_histogram 
)

[Graph] Creates a VPAC_VISS Node.

At a high level, VPAC VISS converts RAW image sensor data into processed YUV or RGB images.

VISS node supports 5 optional outputs (output0 to output4), and at least one of the outputs must be enabled.

The resolution of all the image ports should have the same width and height. The only exception to this is if the output1 and/or output3 is used to output chroma alone by selecting appropriate tivx_vpac_viss_params_t::fcp::mux_output1 and tivx_vpac_viss_params_t::fcp::mux_output3, then the height is half of the input for these 2 ports if the tivx_vpac_viss_params_t::fcp::chroma_mode is selected as TIVX_VPAC_VISS_CHROMA_MODE_420.

Parameters
[in]graphThe reference to the graph.
[in]configurationThe input object of a single params structure of type tivx_vpac_viss_params_t. These parameters essentially defines path inside VISS and are used to select output format.
[in]ae_awb_result(optional) The input object of a single params structure of type tivx_ae_awb_params_t. Typically this input parameter would come from a 2A algorithm node.
[in]dcc_buf(optional) DCC tuning database for the given sensor vx_user_data_object
[in]rawThe RAW input image (can contain up to 3 exposures plus meta data) in P12 or U16 or U8 format. RAW Image at index 0 is used for single exposure processing and also for Linear mode processing. For two exposure WDR merge mode, RAW Image at index 0 is used for short exposure and image at index1 is used for long exposure. For three exposure WDR merge mode, RAW Image at index 0 is used for very short exposure, image at index1 for short exposure and image at index2 for long exposure.
[out]output0(optional) Output0 for 12bit output. Typically this output is used to get YUV420 frame in 12bit format, or Luma plane of the YUV420 frame or Value from the HSV module tivx_vpac_viss_params_t::mux_output0 is used to select the output format when data format is set to U16 or P12 Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 TIVX_DF_IMAGE_NV12_P12.
[out]output1(optional) Output1 for 12bit output. Typically this output is used to get Chroma plane of YUV420 frame in 12bit format or One of the CFA output in 12bit format tivx_vpac_viss_params_t::mux_output1 is used to select the output format Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output0 is not set to YUV420 output format.
[out]output2(optional) Output2 for 12bit or 8bit output. Typically this output is used to get YUV420 frame in 8bit format or Luma portion of the YUV420 frame in 8bit or Red color plane in 8bit or YUV422 (YUYV or UYVY) in 8bit format or One of the color output CFA in 12bit or Value output from HSV module in 8bit tivx_vpac_viss_params_t::mux_output2 is used to select the output format when data format is set to U8 or U16 or P12 Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 VX_DF_IMAGE_NV12 VX_DF_IMAGE_YUYV VX_DF_IMAGE_UYVY
[out]output3(optional) Output3 for 12bit or 8bit output. Typically this output is used to get Chroma portion of the YUV420 frame or One of the color output CFA in 12bit tivx_vpac_viss_params_t::mux_output3 is used to select the output format. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output2 is not set to YUV420/UYVY/YUYV output formats.
[out]output4(optional) Output4 for 12bit or 8bit output. Typically this output is used to get Saturation from HSV block in 8bit or One of the color output CFA in 12bit tivx_vpac_viss_params_t::mux_output4 is used to select the output format. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12
[out]h3a_output(optional) AEWB/AF output. This output is used to get AEWB/AF output. User data object of type tivx_h3a_data_t is used to AEWB/AF output. Only one of AEWB & AF can be enabled and outputted at a time.
[out]histogram0(optional) The output histogram from the FCP. The number of bins for this histogram is fixed to 256 bins. The memory size allocated for this histogram is 256 x sizeof(uint32_t), which is sufficient for storing 256x20bit histogram.
[out]histogram1(optional) [SHOULD BE NULL] This is not used in J721E
[out]raw_histogram(optional) [SHOULD BE NULL] This is not used in J721E
See also
TIVX_KERNEL_VPAC_VISS_NAME
Returns
vx_node.
Return values
vx_nodeA node reference. Any possible errors preventing a successful creation should be checked using vxGetStatus

At a high level, VPAC VISS converts RAW image sensor data into processed YUV or RGB images.

VISS node supports 5 optional outputs (output0 to output4), and at least one of the outputs must be enabled.

The resolution of all the image ports should have the same width and height. The only exception to this is if the output1 and/or output3 is used to output chroma alone by selecting appropriate tivx_vpac_viss_params_t::fcp::mux_output1 and tivx_vpac_viss_params_t::fcp::mux_output3, then the height is half of the input for these 2 ports if the tivx_vpac_viss_params_t::fcp::chroma_mode is selected as TIVX_VPAC_VISS_CHROMA_MODE_420.

Parameters
[in]graphThe reference to the graph.
[in]configurationThe input object of a single params structure of type tivx_vpac_viss_params_t. These parameters essentially defines path inside VISS and are used to select output format.
[in]ae_awb_result(optional) The input object of a single params structure of type tivx_ae_awb_params_t. Typically this input parameter would come from a 2A algorithm node.
[in]dcc_buf(optional) DCC tuning database for the given sensor vx_user_data_object
[in]rawThe RAW input image (can contain up to 3 exposures plus meta data) in P12 or U16 or U8 format. RAW Image at index 0 is used for single exposure processing and also for Linear mode processing. For two exposure WDR merge mode, RAW Image at index 0 is used for short exposure and image at index1 is used for long exposure. For three exposure WDR merge mode, RAW Image at index 0 is used for very short exposure, image at index1 for short exposure and image at index2 for long exposure.
[out]output0(optional) Output0. Typically this output is used to get YUV420 frame in 12bit or 8bit format, or Luma plane of the YUV420 frame in 12 or 8 bit, or Value from the HSV module, or Red color plane in 8bit or YUV422 (YUYV or UYVY) in 8bit format or One of the color output CFA in 12bit tivx_vpac_viss_params_t::output_fcp_mapping[0] along with tivx_vpac_viss_params_t::fcp is used to select the output format from the appropriate FCP instance. Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 TIVX_DF_IMAGE_NV12_P12. VX_DF_IMAGE_U8 VX_DF_IMAGE_NV12 VX_DF_IMAGE_YUYV VX_DF_IMAGE_UYVY
[out]output1(optional) Output1. Typically this output is used to get Chroma plane of YUV420 frame in 12bit or 8bit format or One of the CFA output in 12bit format tivx_vpac_viss_params_t::output_fcp_mapping[1] along with tivx_vpac_viss_params_t::fcp is used to select the output format from the appropriate FCP instance. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output0 is not set to YUV420/UYVY/YUYV output formats.
[out]output2(optional) Output2. Typically this output is used to get YUV420 frame in 12bit or 8bit format, or Luma plane of the YUV420 frame in 12 or 8 bit, or Value from the HSV module, or Red color plane in 8bit or YUV422 (YUYV or UYVY) in 8bit format or One of the color output CFA in 12bit tivx_vpac_viss_params_t::output_fcp_mapping[2] along with tivx_vpac_viss_params_t::fcp is used to select the output format from the appropriate FCP instance. Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 TIVX_DF_IMAGE_NV12_P12. VX_DF_IMAGE_U8 VX_DF_IMAGE_NV12 VX_DF_IMAGE_YUYV VX_DF_IMAGE_UYVY
[out]output3(optional) Output3. Typically this output is used to get Chroma plane of YUV420 frame in 12bit or 8bit format or One of the CFA output in 12bit format tivx_vpac_viss_params_t::output_fcp_mapping[3] along with tivx_vpac_viss_params_t::fcp is used to select the output format from the appropriate FCP instance. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output0 is not set to YUV420/UYVY/YUYV output formats.
[out]output4(optional) Output4 for 12bit or 8bit output. Typically this output is used to get Saturation from HSV block in 8bit or One of the color output CFA in 12bit tivx_vpac_viss_params_t::output_fcp_mapping[4] along with tivx_vpac_viss_params_t::fcp is used to select the output format from the appropriate FCP instance. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12
[out]h3a_output(optional) AEWB/AF output. This output is used to get AEWB/AF output. User data object of type tivx_h3a_data_t is used to AEWB/AF output. Only one of AEWB & AF can be enabled and outputted at a time.
[out]histogram0(optional) The output FCP0 histogram. The number of bins for this histogram is fixed to 256 bins. The memory size allocated for this histogram is 256 x sizeof(uint32_t), which is sufficient for storing 256x20bit histogram.
[out]histogram1(optional) The output FCP1 histogram. The number of bins for this histogram is fixed to 256 bins. The memory size allocated for this histogram is 256 x sizeof(uint32_t), which is sufficient for storing 256x20bit histogram.
[out]raw_histogram(optional) The output raw data histogram. The number of bins for this histogram is fixed to 128 bins. The memory size allocated for this histogram is 128 x sizeof(uint32_t), which is sufficient for storing 128x22bit histogram.
See also
TIVX_KERNEL_VPAC_VISS_NAME
Returns
vx_node.
Return values
vx_nodeA node reference. Any possible errors preventing a successful creation should be checked using vxGetStatus

At a high level, VPAC VISS converts RAW image sensor data into processed YUV or RGB images.

VISS node supports 5 optional outputs (output0 to output4), and at least one of the outputs must be enabled.

The resolution of all the image ports should have the same width and height. The only exception to this is if the output1 and/or output3 is used to output chroma alone by selecting appropriate tivx_vpac_viss_params_t::fcp::mux_output1 and tivx_vpac_viss_params_t::fcp::mux_output3, then the height is half of the input for these 2 ports if the tivx_vpac_viss_params_t::fcp::chroma_mode is selected as TIVX_VPAC_VISS_CHROMA_MODE_420.

Parameters
[in]graphThe reference to the graph.
[in]configurationThe input object of a single params structure of type tivx_vpac_viss_params_t. These parameters essentially defines path inside VISS and are used to select output format.
[in]ae_awb_result(optional) The input object of a single params structure of type tivx_ae_awb_params_t. Typically this input parameter would come from a 2A algorithm node.
[in]dcc_buf(optional) DCC tuning database for the given sensor vx_user_data_object
[in]rawThe RAW input image (can contain up to 3 exposures plus meta data) in P12 or U16 or U8 format. RAW Image at index 0 is used for single exposure processing and also for Linear mode processing. For two exposure WDR merge mode, RAW Image at index 0 is used for short exposure and image at index1 is used for long exposure. For three exposure WDR merge mode, RAW Image at index 0 is used for very short exposure, image at index1 for short exposure and image at index2 for long exposure.
[out]output0(optional) Output0 for 12bit output. Typically this output is used to get YUV420 frame in 12bit format, or Luma plane of the YUV420 frame or Value from the HSV module tivx_vpac_viss_params_t::mux_output0 is used to select the output format when data format is set to U16 or P12 Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 TIVX_DF_IMAGE_NV12_P12.
[out]output1(optional) Output1 for 12bit output. Typically this output is used to get Chroma plane of YUV420 frame in 12bit format or One of the CFA output in 12bit format tivx_vpac_viss_params_t::mux_output1 is used to select the output format Supported image format are VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output0 is not set to YUV420 output format.
[out]output2(optional) Output2 for 12bit or 8bit output. Typically this output is used to get YUV420 frame in 8bit format or Luma portion of the YUV420 frame in 8bit or Red color plane in 8bit or YUV422 (YUYV or UYVY) in 8bit format or One of the color output CFA in 12bit or Value output from HSV module in 8bit tivx_vpac_viss_params_t::mux_output2 is used to select the output format when data format is set to U8 or U16 or P12 Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 VX_DF_IMAGE_NV12 VX_DF_IMAGE_YUYV VX_DF_IMAGE_UYVY
[out]output3(optional) Output3 for 12bit or 8bit output. Typically this output is used to get Chroma portion of the YUV420 frame or One of the color output CFA in 12bit tivx_vpac_viss_params_t::mux_output3 is used to select the output format. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12 can be enabled only when output2 is not set to YUV420/UYVY/YUYV output formats.
[out]output4(optional) Output4 for 12bit or 8bit output. Typically this output is used to get Saturation from HSV block in 8bit or One of the color output CFA in 12bit tivx_vpac_viss_params_t::mux_output4 is used to select the output format. Supported image format are VX_DF_IMAGE_U8 VX_DF_IMAGE_U16 TIVX_DF_IMAGE_P12
[out]h3a_output(optional) AEWB/AF output. This output is used to get AEWB/AF output. User data object of type tivx_h3a_data_t is used to AEWB/AF output. Only one of AEWB & AF can be enabled and outputted at a time.
[out]histogram0(optional) The output histogram from the FCP. The number of bins for this histogram is fixed to 256 bins. The memory size allocated for this histogram is 256 x sizeof(uint32_t), which is sufficient for storing 256x20bit histogram.
[out]histogram1(optional) [SHOULD BE NULL] This is not used in J721E
[out]raw_histogram(optional) The output raw data histogram. The number of bins for this histogram is fixed to 128 bins. The memory size allocated for this histogram is 128 x sizeof(uint32_t), which is sufficient for storing 128x22bit histogram.
See also
TIVX_KERNEL_VPAC_VISS_NAME
Returns
vx_node.
Return values
vx_nodeA node reference. Any possible errors preventing a successful creation should be checked using vxGetStatus