芯片型号:J6M
问题描述:使用hbVPRoiResize函数对NV12图像进行crop和resize,执行出错,代码如下:
int32_t resize_width = 1024;
int32_t resize_height = 480;
auto image_width_stride = ALIGN_32(resize_width);
int32_t data_size = image_width_stride * resize_height;
hbUCPSysMem output_mem[2];
HB_CHECK_SUCCESS(hbUCPMallocCached(&output_mem[0], data_size, 0),
"hbUCPMallocCached input_data failed");
HB_CHECK_SUCCESS(hbDSPAddrMap(&output_mem[0], &output_mem[0]),
"Failed to hbDSPAddrMap input_data");
HB_CHECK_SUCCESS(hbUCPMallocCached(&output_mem[1], data_size / 2, 0),
"hbUCPMallocCached output_mem failed");
HB_CHECK_SUCCESS(hbDSPAddrMap(&output_mem[1], &output_mem[1]),
"Failed to hbDSPAddrMap output_mem");
hbVPImage *dst = &spec.dst;
dst->imageFormat = HB_VP_IMAGE_FORMAT_NV12;
dst->imageType = HB_VP_IMAGE_TYPE_U8C1;
dst->width = resize_width;
dst->height = resize_height;
dst->stride = image_width_stride;
dst->dataVirAddr = output_mem[0].virAddr;
dst->dataPhyAddr = output_mem[0].phyAddr;
dst->uvStride = image_width_stride;
dst->uvVirAddr = output_mem[1].virAddr;
dst->uvPhyAddr = output_mem[1].phyAddr;
LOGI("resize form {} x {} to {} x {}", src->width, src->height, dst->width, dst->height);
hbUCPTaskHandle_t task{nullptr};
hbUCPSchedParam sched_param;
HB_UCP_INITIALIZE_SCHED_PARAM(&sched_param);
sched_param.backend = HB_UCP_ALL_BACKENDS;
// hbVPResize(&task, dst, src, HB_VP_INTER_LINEAR);
hbVPRoi roi{0, 648, 3839, 2159};
hbVPRoiResizeParam param{HB_VP_INTER_LINEAR, {0, 0, 0, 0}};
LOGI("roi form {} x {} to {} x {}", roi.left, roi.top, roi.right, roi.bottom);
hbVPRoiResize(&task, dst, src, &roi, ¶m);
HB_CHECK_SUCCESS(hbUCPSubmitTask(task, &sched_param),
"hbUCPSubmitTask failed");
HB_CHECK_SUCCESS(hbUCPWaitTaskDone(task, 0), "hbUCPWaitTaskDone failed");
HB_CHECK_SUCCESS(hbUCPReleaseTask(task), "hbUCPReleaseTask failed");
hbUCPMemFlush(&output_mem[0], HB_SYS_MEM_CACHE_INVALIDATE);
hbUCPMemFlush(&output_mem[1], HB_SYS_MEM_CACHE_INVALIDATE);
代码在J6M执行时报错如下:
[E][495569][12-25][11:34:46:221][test_demosaicing_op.cc:216][dsp_samples][TUTORIAL] hbUCPSubmitTask failed ,
error code: -200004
[E][495569][12-25][11:34:46:221][hb_vp_roi_resize.cpp:86][dsp_samples][VP] dstImg padding height(include top
and bottom) should be multiple of 4, given padding height: 75
[E][495569][12-25][11:34:46:221][hb_vp_roi_resize.cpp:239][dsp_samples][VP] roi scale is invalid
[E][495569][12-25][11:34:46:221][hb_ucp.cpp:74][dsp_samples][UCP] taskHandle is null pointer
请问设置roi时有哪些限制?