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.

[参考译文] C66XCODES:H264解码器输出数据

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/814823/c66xcodecs-h264-decoder-output-data

器件型号:C66XCODES

你(们)好

我在 C66上的 H264解码器的整体性能有问题

我使用的是 H264解码器版本1.1.6.0

当缓冲区被分配用于解码和显示数据时、它们被分配为3个部分(Y、U、V)、并且每个部分都略大于解码的 YUV 帧所需的大小。

为了处理 YUV 帧、我需要在连续缓冲区中存储数据、这意味着复制 YUV 缓冲区。

帧的副本比对帧进行解码所需的时间更长。

理想情况下、我可以将显示数据放在连续缓冲区中、而不必复制。

我尝试使 Y 缓冲区足够大以适合整个帧、将 U 和 V 复制到末尾并从此处使用。 这将使总复印时间减少2/3。 但是、Y 数据的开始未正确对齐(数据不从提供的缓冲区的顶部开始)。

是否有可解决这些问题的新版本?

谢谢

Dhar

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

    您好、Dhar、我们没有任何更新的 C66x H264解码器版本。 最新版本是 h264hpvdec 01_01_06_00。 但是、如果您能与我们分享更多信息、或许还有一个示例、我会挑选一些大脑来看看我们是否能找到另一个解决方案。 您的缓冲器有多大? 您使用的是哪些分辨率和 fps? 您将缓冲器放在哪里? DDR? 要复制映像,您是否使用 memcpy()或 dma?

    谢谢、

    Paula

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

    你(们)好

    缓冲器被分配为1920x1088分辨率

    实际图像尺寸为1920x1080

    FPS 15.

    所有缓冲器都位于 DDR 中(25个缓冲器、~80MB)

    使用 memcpy 移动数据

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

    您好!

    如 Paula 所述、没有更新版本的 H264解码器。 您正在使用 CPU 将数据从 SRC 复制到 DST、两者都在 DDR3中、但您希望缩短此过程的时间。

    EDMA 可用于此目的。 我假设这是 C667x 器件。 然后、您可以参阅以下内容的 CSL 级别代码: pdk_c667x_2_0_13\packages/ti\cSL\examples\edma\edma_test。 您可以首先尝试独立的 CCS 项目、只需将数据从 A 移动到 B 即可确保其正常工作。 然后集成到您的应用中。

    此致、Eric