This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VE-Q1:如何使用 displaym2m 将图像从 YUV420转换为 RGB888

Guru**** 2540720 points
Other Parts Discussed in Thread: TDA4VM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1390950/tda4ve-q1-how-to-convert-image-from-yuv420-to-rgb888-using-displaym2m

器件型号:TDA4VE-Q1
主题中讨论的其他器件:TDA4VM

工具与软件:

SoC:TDA4VM ECO

SDK:0805

管道:摄像机->capture->scaler->displaym2m
displaym2m 代码设置如下:
tivx_display_m2m_params_init(&displayM2mObj->m2m_params);
displayM2mObj->m2m_params.instId = 0;
displayM2mObj->m2m_params.numPipe = 1;
displayM2mObj->m2m_params.overlayId = 3;
displayM2mObj->m2m_params.pipeId[0] = 3;

displayM2mObj->m2m_config = vxCreateUserDataObject(context, "tivx_display_m2m_params_t, sizeof(tivx_display_m2m_params_t), NULL);

vxSetReferenceName((vx_reference)displayM2mObj->m2m_config, "displayM2m_node_config");

vxCopyUserDataObject(displayM2mObj->m2m_config, 0,
                        sizeof(tivx_display_m2m_params_t),
                        &displayM2mObj->m2m_params,
                        VX_WRITE_ONLY,
                        VX_MEMORY_TYPE_HOST);

vx_image img_obj = vxCreateImage(context, w, h, VX_DF_IMAGE_RGB);
for(q = 0; q < bufq_depth; q++)
{
    displayM2mObj->displaym2m_out_arr_q[q] = vxCreateObjectArray(context, (vx_reference)img_obj, sensorObj->num_cameras_enabled);
    vx_char name[VX_MAX_REFERENCE_NAME];

    snprintf(name, VX_MAX_REFERENCE_NAME, "displaym2m_out_arr_q_%d", q);

    vxSetReferenceName((vx_reference)displayM2mObj->displaym2m_out_arr_q[q], name);
}
vxReleaseImage(&img_obj);

vx_image input_img = (vx_image)vxGetObjectArrayItem(input_arr/*vx_object_array*/, 0);
vx_image output_img = (vx_image)vxGetObjectArrayItem(displayM2mObj->displaym2m_out_arr_q/*vx_object_array*/, 0);

displayM2mObj->node = tivxDisplayM2MNode(graph, displayM2mObj->m2m_config, input_img, output_img);

vxReleaseImage(&input_img);
vxReleaseImage(&output_img);

vxSetReferenceName((vx_reference)displayM2mObj->node, "displaym2m_node");
vxSetNodeTarget(displayM2mObj->node, VX_TARGET_STRING, TIVX_TARGET_DISPLAY_M2M2);

vx_bool replicate[] = { vx_false_e, vx_true_e, vx_true_e};
vxReplicateNode(graph, displayM2mObj->node, replicate, 3);
在程序运行后、会生成以下错误:
   0.000000 s: vx_zone_error:[ownContextSendCmd:802]命令 ack 消息返回失败 cmd_status:-8
   0.000000 s: vx_zone_error:[ownContextSendCmd:838] tivxEventWait ()失败。
   0.000000 s: vx_zone_error:[ownNodeKernelInit:525]目标内核 TIVX_CMD_NODE_CREATE 对于 node displaym2m_node 失败
   0.000000 s: vx_zone_error:[ownNodeKernelInit:526]请确保已为此内核注册目标回调
   0.000000 s: vx_zone_error:[ownNodeKernelInit:527]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
   0.000000 s: vx_zone_error :[ ownGraphNodeKernelInit:583] kernel init for node 3, kernel com.ti.hwa.displaym2m failed!!!
   0.000000 s: vx_zone_error:[vxVerifyGraph:2066]节点内核初始化失败
   0.000000 s: vx_zone_error:[vxVerifyGraph:2120]图形验证失败
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhang:

    您是否看到 MCU2_0有任何错误? 因为此日志未告知故障。 我看到的代码看起来没有问题。 您将使用 NV12输入图像和 RGB 输出图像、并使用 bufq_depth 复制节点、这 意味着您计划在多通道模式下使用 DSS M2M。  

    此致、

    Brijesh