![]() |
TIOVX User Guide
|
VPAC FlexConnect Kernels.
Data Structures | |
| struct | tivx_vpac_fc_viss_msc_params_t |
| The input config data structure used by the TIVX_KERNEL_VPAC_FC kernel. More... | |
Defines | |
| #define | TIVX_KERNEL_VPAC_FC_NAME "com.ti.hwa.vpac_fc" |
| vpac_fc kernel name | |
| #define | TIVX_VPAC_FC_MSC_CMD_SET_COEFF (0x10000000u) |
| Control Command to set MSC Filter Coefficients User data object tivx_vpac_msc_coefficients_t is passed as argument with this control command. | |
| #define | TIVX_VPAC_FC_MSC_CMD_SET_INPUT_PARAMS (0x10000001u) |
| Control Command to set MSC input parameters. More... | |
| #define | TIVX_VPAC_FC_MSC_CMD_SET_OUTPUT_PARAMS (0x10000002u) |
| Control Command to set MSC output scaling parameters. More... | |
| #define | TIVX_VPAC_FC_MSC_CMD_SET_CROP_PARAMS (0x10000003u) |
| Control Command to set MSC output croping parameters. More... | |
| #define | TIVX_VPAC_FC_VISS_CMD_SET_DCC_PARAMS (0x10000004u) |
| Control Command to set the DCC (Dynamic Camera Configuration) information to the given VISS Node. More... | |
| #define | TIVX_VPAC_FC_DELETE_GRAPH (0x10000005u) |
| Control Command to delete the flex-connect path created by the FC node. More... | |
Functions | |
| void | tivxRegisterHwaTargetVpacFcKernels (void) |
| Function to register HWA Kernels on the vpac_fc Target. | |
| void | tivxUnRegisterHwaTargetVpacFcKernels (void) |
| Function to un-register HWA Kernels on the vpac_fc Target. | |
| VX_API_ENTRY vx_node VX_API_CALL | tivxVpacFcVissMscNode (vx_graph graph, vx_user_data_object configuration, vx_user_data_object viss_ae_awb_result, vx_user_data_object dcc_buf, tivx_raw_image viss_raw, vx_image viss_out0, vx_image viss_out1, vx_image viss_out2, vx_image viss_out3, vx_user_data_object viss_h3a_out, vx_distribution viss_histogram0, vx_distribution viss_histogram1, vx_distribution viss_raw_histogram, vx_image msc_scale_out0_img, vx_image msc_scale_out1_img, vx_image msc_scale_out2_img, vx_image msc_scale_out3_img, vx_image msc_scale_out4_img, vx_image msc_scale_out5_img, vx_image msc_scale_out6_img, vx_image msc_scale_out7_img, vx_image msc_scale_out8_img, vx_image msc_scale_out9_img) |
| [Graph] Creates a VPAC_FC Node. More... | |
| #define TIVX_VPAC_FC_MSC_CMD_SET_INPUT_PARAMS (0x10000001u) |
Control Command to set MSC input parameters.
These parameters are common for all scaler outputs. Used to configure/select the number of taps to be used for scaling operation, line increment by 2 to improve HW throughput for 1/2 scaling.
This control command uses pointer to structure tivx_vpac_msc_input_params_t as an input argument.
The index0 of the vx_reference passed to the control command is used to specify user object containing input parameters.
Definition at line 113 of file hwa_vpac_fc.h.
| #define TIVX_VPAC_FC_MSC_CMD_SET_OUTPUT_PARAMS (0x10000002u) |
Control Command to set MSC output scaling parameters.
This command takes an array of vx_references as an argument, where each index contains output parameters for the corresponding scaler. For example, the output parameters at the index0 contains output parameters for the scaler output0 and so on. If the reference is set to null for a scaler, default scaler parameters or previously set/configured parameters are used for that scaler.
Used to configure/select number of phases for the scaling operation, the coefficients and other scaler parameters.
This command takes an array of user objects containing tivx_vpac_msc_output_params_t parameters..
Definition at line 133 of file hwa_vpac_fc.h.
| #define TIVX_VPAC_FC_MSC_CMD_SET_CROP_PARAMS (0x10000003u) |
Control Command to set MSC output croping parameters.
This command takes an array of vx_references as an argument, where each index contains crop parameters for the corresponding scaler. For example, the crop parameters at the index0 contains crop parameters required by output0 and so on. The crop parameters are applied on the corrosponding input image. If the reference is set to null for a scaler, default scaler parameters or previously set/configured parameters are used for that scaler. (Default: no crop)
Used to configure/select number of phases for the scaling operation, the coefficients and other scaler parameters.
This command takes an array of user objects containing tivx_vpac_msc_crop_params_t parameters.
Node: Applies only to tivxVpacFcVissMscNode
Definition at line 157 of file hwa_vpac_fc.h.
| #define TIVX_VPAC_FC_VISS_CMD_SET_DCC_PARAMS (0x10000004u) |
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_fc_viss_msc_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 177 of file hwa_vpac_fc.h.
| #define TIVX_VPAC_FC_DELETE_GRAPH (0x10000005u) |
Control Command to delete the flex-connect path created by the FC node.
This command is used to delete the flex-connect path created by the FC node. The command is used when the graph is deleted or when the graph is reconfigured.
This command does not take any arguments.
Definition at line 190 of file hwa_vpac_fc.h.
| VX_API_ENTRY vx_node VX_API_CALL tivxVpacFcVissMscNode | ( | vx_graph | graph, |
| vx_user_data_object | configuration, | ||
| vx_user_data_object | viss_ae_awb_result, | ||
| vx_user_data_object | dcc_buf, | ||
| tivx_raw_image | viss_raw, | ||
| vx_image | viss_out0, | ||
| vx_image | viss_out1, | ||
| vx_image | viss_out2, | ||
| vx_image | viss_out3, | ||
| vx_user_data_object | viss_h3a_out, | ||
| vx_distribution | viss_histogram0, | ||
| vx_distribution | viss_histogram1, | ||
| vx_distribution | viss_raw_histogram, | ||
| vx_image | msc_scale_out0_img, | ||
| vx_image | msc_scale_out1_img, | ||
| vx_image | msc_scale_out2_img, | ||
| vx_image | msc_scale_out3_img, | ||
| vx_image | msc_scale_out4_img, | ||
| vx_image | msc_scale_out5_img, | ||
| vx_image | msc_scale_out6_img, | ||
| vx_image | msc_scale_out7_img, | ||
| vx_image | msc_scale_out8_img, | ||
| vx_image | msc_scale_out9_img | ||
| ) |
[Graph] Creates a VPAC_FC Node.
At a high level, VPAC FC converts RAW image sensor data into processed YUV or RGB images.
FC node will support 4 optional viss outputs (viss_output0 to viss_output3 in a future release) and 10 optional msc outputs (msc_output0 to msc_output9). At least one of the msc_outputs must be enabled.
VISS Outputs(optional) The resolution of all the image ports should have the same width and height. The only exception to this is if the
MSC Outputs(atleast one must be enabled) This node should adhere to the following rules:
| [in] | graph | The reference to the graph. |
| [in] | configuration | The input object of a single params structure of type tivx_vpac_fc_viss_msc_params_t. These parameters essentially defines path inside VISS and are used to select output format. |
| [in] | viss_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] | viss_raw | The 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] | viss_out0 | (optional) Output0. This will be enabled in a future release 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] | viss_out1 | (optional) Output1. This will be enabled in a future release 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] | viss_out2 | (optional) Output2. This will be enabled in a future release 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] | viss_out3 | (optional) Output3. This will be enabled in a future release 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] | viss_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] | viss_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] | viss_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] | viss_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. |
| [out] | msc_scale_out0_img | The output image in VX_DF_IMAGE_NV12, VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out1_img | (optional) The output image in VX_DF_IMAGE_NV12, VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out2_img | (optional) The output image in VX_DF_IMAGE_NV12, VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. format. |
| [out] | msc_scale_out3_img | (optional) The output image in VX_DF_IMAGE_NV12, VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out4_img | (optional) The output image in VX_DF_IMAGE_NV12, VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out5_img | (optional) The output image in VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out6_img | (optional) The output image in VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out7_img | (optional) The output image in VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out8_img | (optional) The output image in VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
| [out] | msc_scale_out9_img | (optional) The output image in VX_DF_IMAGE_U8 (8bit Luma or Chroma, based on value of tivx_vpac_msc_input_params_t::yc_mode, when NV12 is input) or (8bit luma only when U8 is input) or (8bit luma or chroma, when input is non NV12), VX_DF_IMAGE_U16 (12bit in 16bit container Luma or chroma), or TIVX_DF_IMAGE_P12 (12bit packed Luma or chroma) format. |
TIVX_KERNEL_VPAC_FC_NAMEvx_node.| vx_node | A node reference. Any possible errors preventing a successful creation should be checked using vxGetStatus |