Hi TI,
I have a few questions regarding the VPAC VISS Node usage.
1. Is there host emulation available for the VPAC nodes?
2. Is is possible to configure the VISS node to receive UV as 8 bit in full resolution (not downsampled)?
3. There seems to be a bug in the VISS node creation if you pass NULL as the output2 parameter.
a) In vx_vpac_viss_target.c you call Vhwa_m2mVissParamsInit() which enables the output2 even if it is not used. This leads to an error during graph verification. I changed this by setting prms->outPrms[VHWA…].enable = FALSE in the mentioned function;
4. What is the minimal configuration to make the VISS node output something meaningful with RAW image input from RAM?
a) I have tried the following but I just receive white noise in the viss_Y12_out_img, which seems to be no surprise since the whole RFE configuration is missing in the available VISS node parameters. Where would I have to set that and is there a guide for configuring the VISS?
/* Create VISS parameters */
viss_params.sensor_dcc_id = 0; // Is this necessary?
viss_params.use_case = 0;
viss_params.ee_mode = TIVX_VPAC_VISS_EE_MODE_OFF;
viss_params.mux_output0 = TIVX_VPAC_VISS_MUX0_Y12;
viss_params.mux_output1 = 0;
viss_params.mux_output2 = 0;
viss_params.mux_output3 = 0;
viss_params.mux_output4 = 0;
viss_params.h3a_in = 0;
viss_params.h3a_aewb_af_mode = 0;
viss_params.chroma_mode = 0;
viss_params.enable_ctx = 0;
viss_params.bypass_glbce = 1;
viss_params.bypass_nsf4 = 1;
viss_configuration = vxCreateUserDataObject(… &viss_params);
/* Create images */
raw_params.width = width;
raw_params.height = height;
raw_params.num_exposures = 1;
raw_params.line_interleaved = vx_false_e;
raw_params.format[0].pixel_container = TIVX_RAW_IMAGE_16_BIT;
raw_params.format[0].msb = msb;
raw_params.meta_height_before = 0;
raw_params.meta_height_after = 0;
raw_img = tivxCreateRawImage(... &raw_params);
viss_Y12_out_img = vxCreateImage(... width, height, VX_DF_IMAGE_U16);
/* Fill raw buffer from RAM */
tivxMapRawImagePatch(raw_img,
&rect, // {0,0,width,height}
0,
&map_id,
&user_addr,
&user_ptr,
VX_READ_AND_WRITE,
VX_MEMORY_TYPE_HOST ,
TIVX_RAW_IMAGE_PIXEL_BUFFER);
for (lines) { // line by line copy
memcpy(user_ptr, image_data_from_RAM, line_width);
}
tivxUnmapRawImagePatch(raw_img, map_id);
/* Node creation */
viss_configuration = tivxVpacVissNode(graph,
viss_configuration,
NULL,
NULL,
raw_img,
viss_Y12_out_img,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
Best Regards,
Tobi