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.

[参考译文] 在 AM57x 上使用 DSP 编解码器

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/565057/using-dsp-codecs-on-am57x

您好!

我正在尝试在 ARM57x 上集成 IIMGDEC1 jpegdec、我能够在 DSP-DCE 和 libdce 中正确添加 create()和 control() API、但当我对 process() API 执行相同的操作时、我会遇到以下错误

X晚期[3]=偏移大于数据区域(sec_offset = 3069882381大小= 23)

我想知道这个问题是什么、我是否需要调整 DSP-DCE 的内存分配、DSP-DCE 的数据区域为2MB、如果是、请告诉我如何调整、 在哪个文件中、因为我尝试在 dsp_dce.cfg 文件中执行它、但不起作用。

此致、
Neha Kauser

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

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

    我使用的是 AM57x/PSDK。
    我们计划通过 将编解码器与 DSP-DCE 集成来使用 software-dl.ti.com/.../index.html 上的 AM57x/PSDK。

    我已成功集成了 jpegdec IIMGDEC1,但在调用 process() API 时,我收到了上述错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Neha、
    我怀疑在 IIMGDEC1 CODEC CODE_TYPE 的 libdce 中转换输出缓冲区存在一些问题。
    对于 OMAP-DCE_VIDDEC3、请参考缓冲区转换、它应该是直接的。
    VIDDEC3的输入和输出缓冲器类型为 XDM2_BufDESC、而对于 IIMGDEC1、缓冲器类型为 XDM1_BufDESC、它们几乎相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ramprasad、

    感谢您的回答
    另一个问题是,DSP-DCE 中的 CODEC 进程() API 需要发送7个参数,但如果我遵循 OMAP-DC_VIDDEC3,则必须发送6个参数,如果我修改 DSP-DCE CODEC 进程() API 以接受6个参数,这会产生任何问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以根据 codec_id 验证 numPaeams 并仅解释 VIDDEC2的 outputbufptr。

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

    正如您所说的、我对 OMAP-DCE _IMGDEC1遵循了 OMAP-DCE_VIDDEC3、但从 mmrpc 中、由于写入失败、我会收到错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ramprasad、

    我在将文件写入时遇到错误,例如“rpmsg_RPC rpmsg-dc-dsp:参数不匹配的数量! Params = 6 Expected = 7"(预期参数= 6 = 7)
    此语句出现在 rpmsg.c 中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、
    我理解您的问题。
    在 dce.c 中,以下代码需要7个输入参数

    {"codec_process"、8、

    但在 libdce 中,我想您添加了以下代码。

    }否则、如果(codec_id =OMAP-DCE_IMGDEC1){

    numInBufs =((XDM1_BufDesc *) inBufs)->numBufs;
    numOutBufs =((XDM1_BufDesc *) outBufs)->numBufs;
    numXltAry = numInBufs + numOutBuf;
    numParams = 6;



    由于 VIDDEC2需要7、因此您可能在 OMA_DCE_IMGDEC1的 libdce 中有一个虚拟缓冲区指针并忽略此缓冲区指针。
    您需要执行类似这样的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于 DSP-DCE 的内存分配、我必须调整 DSP-DCE 的内存、到目前为止、数据区域只有2 MB、如何增加?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 DSP_DCE_1_xx/platform/ti/DCE/baseimage/custom_rsc_table_vayu_dsp.h
    它为代码和数据分配2MB、为堆分配40MB。
    #define DSP_MEM_TEXT_SIZE (SZ_1M * 2)

    #define DSP_MEM_DATA_SIZE (SZ_1M * 2)
    #define DSP_MEM_heap_size (SZ_1M * 40)


    这是否足以满足您的图像解码器要求? 请参阅图像解码器的数据表。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当你告诉我创建一个虚拟指针和缓冲器来填充 xLate 数组时、我尝试执行了这个操作、但我还是得到了与昨天相同的错误

    代码如下:
    buf_arry =(void *)(&((((XDM1_BufDesc *) outBufs)->descs[0].buf));
    fill_mmRpc_fxnCtx_OffPTR_Params (&(fxnCtx.params[OUTBUFS_PTR_index])、(size_t)* buf_arry、(size_t)* buf_arry、
    sizeof (MemHeader),(size_t)*buf_arry);
    data_buf =(void *)(&((((XDM1_BufDesc *) outBuf)->descs[0].buf));
    FLOAD_MmRpc_fxnCtx_xlt_Array (&(fxnCtx.xltAry[total_count])、OUTBUFS_PTR_INDEX、
    mRpc_offset ((int32_t)* buf_arry、(int32_t) data_buf)、(size_t)* data_buf、(size_t)* data_buf);

    buf_arry =(void *)(&((((XDM1_BufDesc *) outBufs)->descs[1].buf));
    fill_mmRpc_fxnCtx_OffPTR_Params (&(fxnCtx.params[OUTBUFS_PTR_index])、(size_t)* buf_arry、(size_t)* buf_arry、
    sizeof (MemHeader),(size_t)*buf_arry);
    data_buf =(void *)(&((((XDM1_BufDesc *) outBufs)->descs[1].buf));
    FLOAD_MmRpc_fxnCtx_xlt_Array (&(fxnCtx.xltAry[total_count])、OUTBUFS_PTR_INDEX、
    mRpc_offset ((int32_t)* buf_arry、(int32_t) data_buf)、(size_t)* data_buf、(size_t)* data_buf);

    我遇到的错误是:
    rpmsg_RPC rpmsg-dc-dsp:xel晚期[3]偏移量大于数据区域! (Sec_offset = 3069419537大小= 25363)

    请告诉我应该怎么做、我是以错误的方式 xlating 缓冲区、还是其他一些问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么我不能将 DSP_DCE 代码更改为接受6个参数、我尝试将其更改为6、但从 rpmsg-DCE 中、我得到一个例外、即预期7个参数、但 numparams 为6、请告诉我如何解决这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ramprasad、


    根据我的理解、对于 OMAP-DCE_VIDDEC2 (DSP-DCE 需要8个参数)、mmrps 参数数组看起来是这样的


    codec_id、codec_name、inbufs、outbufs、inargs、 outargs、outbufptr


    xlate 数组就是这样的、

    inbufs[0]、outbufarray、outbufsizearray、outbuf[0]、outbuf[1]


    那么、对于 OMAP-DCI_IMGDEC1、操作这2个数组的方法是否相同?

    因为当我尝试填充这3个额外的东西时、我得到的错误与之前相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Neha、
    libdce 似乎仍然存在一些问题。
    我能够通过 IMGDEC1接口进行 copycdectest 测试。 它正在工作。 您将会了解详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ramprsad、

    感谢您的回答。
    请告诉我您如何修改 libdce 代码以支持 IMGDEC1和 copycodectest。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我修改了 libdce.c、dce.c 和 copycodectest.c
    您可以共享您的 mail-id 吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、当然、

    nehakhan1911@gmail.com
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是我的路径合作伙伴邮件 ID、

    neha.kauser@pathpartnertech.com
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Ramprasad、现在这个问题还没有出现、过程 API 工作正常、到现在为止、我正在提供虚拟数据、这就是 IMGDEC1_Process 返回-1的原因、希望如果我提供正确的数据、它工作正常。