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.

[参考译文] TMS320DM8148:DM8127 DSP 链路 fps 下降问题

Guru**** 2559200 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/593913/tms320dm8148-dm8127-dsp-link-fps-drop-problem

器件型号:TMS320DM8148

我正在 DM8127的 C674x DSP 上开发一些图像算法。

我尝试修改 swosd 链接并将其移植到 DSP 以应用我的方法、但有一些问题导致 fps 下降。

我创建的链接未处理任何数据。 我只使用 Task_sleep()来模拟实际的处理时间。

以下是链接:

cameraLink -> MCTNF -> VNF -> A_dspLink -> B_dspLink -> DUP -> sclr ->……

A_dspLink 休眠时间约为8ms、B_dspLink 休眠时间为10ms

我发现、如果只有 B_dspLink (20ms)、则 fps 约为40fps。

添加 A_dspLink 后、fps 变为30fps 或更低、这非常奇怪。

因为当我将 A_dspLink 和 B_dspLink 组合在一起(18ms)时、fps 可以达到大约40fps。

我猜、如果每个链路都能保持较低的计算时间、例如、所有链路都可以低于33ms、fps 也可以保持30fps 或更高。

但这个问题似乎是我猜到的是错误的。

链路与 fps 之间似乎存在某种关系。

是否有任何文档或示例可以帮助我了解此问题?

谢谢!

BR、

李维玉

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

    您在这里使用的软件版本是什么?

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

    我使用的是 IPNC RDK 3.8。

    谢谢!!

    BR、

    李维玉

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

    我将通知 IPNC 团队寻求帮助。

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

    您好、Lee、

    请打印所有链接的统计信息、并检查哪个链接跳过帧并共享日志。

    如果可能、请分享您的 DSP 链接实施方案。

    此致、

    Anuj

    Pathpartner Technology Pvt Ltd

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

    尊敬的 Anuj:

    感谢您提供的信息!

    在检查每个链路的状态后、我发现多路复用链路没有跳过任何帧、但当我绕过它时、帧率不会下降。
    多路复用器的输入动态来自 sclrLink、这取决于编码器的分辨率。

    例如、如果编码器的分辨率为:
    1、1080p 30fps H.264
    2.720x480 30fps H.264
    3. 720x480 30fps MJPEG
    4.720x480 30fps MJPEG

    只有2个 sclrLinks (1080p 和720x480)、我使用多路复用器链接将流复制到编码器。 (2个输入4个输出)
    仅当编码器数量的分辨率小于2时、fps 才会下降、
    这意味着输出多路复用链接越多、fps 就越低!

    如果4个编码器的分辨率不同、则多路复用器链接(4个输入4个输出)不会影响 fps。
    这是否意味着保存缓冲区的多路复用链路会使 fps 下降?
    是否有任何改进建议?

    非常感谢!

    BR、

    李维玉

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

    您能不能共享您的用例代码。
    请回答以下问题
    1.如何动态馈送来自 sclr 的多路复用器输入
    2.如果编码器的分辨率小于2,则两种情况下(1080p 和720*480)多路复用器的输入和输出编号是多少?

    建议:
    使用 dup link after scaler 实现720*480分辨率,并使用4个输入的馈送多路复用器和4个输出,这将馈送编码器,如果您不想从编码器获取任何特定的流,只需动态禁用编码器的特定通道。

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

    尊敬的 Anuj:

    很抱歉耽误你的回答。

    仔细检查此问题后、我发现此问题不仅与任何单个链接有关。

    我观察到的第一个现象是由多路复用器引起的、但在我绕过它之后。 这个问题仍然存在。

    我认为这个问题可能与链接之间的"时序"或同步机制有关。

    (1)如果我尝试限制  DSP 链接中的 frameList.numFrames <= 1、则可以解决 fps 下降问题。

    (2)在我将 Task_sleep()替换为具有相同计算时间的实际函数后,(1)的解决方案不起作用。 在某种程度上、下一个链接无法从 DSP 链接获取新数据。

    (此外、每次 fps 下降时、它始终停留在30fps、这很奇怪、因为计算时间不一致。 它不应始终为30fps。)

    我想这可能也与 DDR 带宽的 CPU 负载有关。

    不过,我不知道根本原因是什么。

    请给我一些关于这个问题的提示或建议,谢谢!!

    BR、

    李维玉

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

    请分享您的用例代码和 DSP 链接实现。 以便我们可以在最后重现错误

    此致、
    Anuj