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.

[参考译文] AM5728:低 V4L2缓冲器复制效率

Guru**** 2587345 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/634333/am5728-low-v4l2-buffer-copy-efficiency

主题中讨论的其他器件:AM5728

大家好:

现在、我们使用 am5728芯片开发了一个视频板。

我们使用 AM5728捕获 BT1120视频、并使用 v4l2捕获视频缓冲器。

现在、我们在将 v4l2缓冲区设置为 V4L2_MEMORY_MMAP、然后将视频缓冲区复制到用户应用程序时找到了该缓冲区。

 效率  非常低、复制720x576大小缓冲区的时间将为8ms。

下面是我的测试命令:


buffer.type = V4L2_BUF_TYPE_VIDEO 捕捉;
Buffer.memory = V4L2_MEMORY_MMAP;
status = ioctl (v4l2_FD、VIDIOC_DQBUF、&buffer);

gettimeofday (&StartTime、NULL);

memcpy (buf、user_buffer[buffer.index].addr、user_buffer[buffer.index].length);

gettimeofday (&finishTime、NULL);


time_use =(finishTime.tv_sec-StartTime.tv_sec)*1000000 +(finishTime.tv_usec - StartTime.tv_usec);//usec
printf ("time_use 为%.10f\n"、time_use);

我们的 PSDK 是 Processor 3.3 SDK

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

    memcpy 是一个耗时的操作、您应该改用 DMA 传输。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高 Biser:
    感谢您的回复。
    因为我的算法需要 YUV 图像、所以我们必须将缓冲区复制到用户缓冲区。

    即使我们使用 DMA buf、我们也需要将视频缓冲区复制到用户缓冲区

    此致

    西溪

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

    请检查以下 e2e 线程:
    e2e.ti.com/.../519249
    e2e.ti.com/.../1852835

    请告诉我、这对您有所帮助。

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

    您好、 Margarita

    感谢您的回复。

    我们将尝试一下。

    此致