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.

[参考译文] SK-TDA4VM:GStreamer 多点线和 CPU/GPU 利用率

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1458178/sk-tda4vm-gstreamer-pipline-and-cpu-gpu-utilization

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

工具与软件:

你(们)好

我只想了解 tda4vm 中的 gst-pipeline 用法。 它可以使用硬件加速器运行、也可以仅使用 a72内核运行

1.了解实际的视频编解码器是如何形成多媒体的  

如果运行具有摄像头接口的 gstreamer、 例如(管道)  gst-launch-1.0 v4l2src device="/dev/video-usb-cam1 ! 视频转换! videoscale! video/x-raw、width=1920、height=1080!  autovideosink

能够在屏幕上看到摄像头流,这利用了 视频转换和 v4l2h264enc 等,这实际上是硬件加速器的一部分。 该模型也可以在 gst-device-monitor-1.0中查看

我的实际问题是,当运行这些东西,我的 CPU 利用率上升, C7x 内核保持空闲(GPU)。 流水线在 CPU 中运行或可以在 GPU 中运行。 如果可能、我应该在 GPU 中运行。 任何帮助都将是非常充分的

谢谢。此致

Gopal

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

    Gopal、您好!

    C7x 不是 GPU、而 C7x 是 DSP 内核。  PowerVR GE8430是 GPU。

    您可以通过运行以下命令来检查 GPU 利用率:

    $ cat /sys/kernel/debug/pvr/status

    当我插入 USB 摄像头并运行以下命令时、我可以看到 GPU 正在使用。

    $ gst-launch-1.0 v4l2src device="/dev/video-usb-cam0" ! videoconvert ! videoscale ! video/x-raw, width=1920, height=1080 ! autovideosink > /dev/null & watch cat /sys/kernel/debug/pvr/status

    您是否想问、是否可以在 C7x 上运行流水线?

    此致!
    Jared

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

    尊敬的 Jared:

    感谢您的答复。 当运行流水线时、发现 GPU 利用率为0-1%。 但我的 CPU 利用率大约为10%

    "您是否在问您是否可以在 C7x 上运行流水线?" -不确定这是否可能。  

    有一种方法可以在运行 gstreamer 流水线时更高效地利用 GPU、从而从 CPU 中卸载使用量、这样在考虑双通道和运行应用程序 CPU 利用率/GPU 利用率时就会有效。

    谢谢。此致

    Bala Guga Gopal S.

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

    Gopal、您好!

    要利用 GPU、可以使用 ti gstreamer 插件。 您可以在以下位置找到它们: https://github.com/TexasInstruments/edgeai-gst-plugins 

    Edge AI SDK 文档中还有一些文档和示例、请访问: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-sk-tda4vm/10_01_00/exports/edgeai-docs/devices/TDA4VM/linux/datasheet_optiflow.html 

    此致!
    Jared

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

    尊敬的 Jared:

    感谢您提供相关信息。 我尝试在我的管道中使用 videoconvert 和 ticolorconvert 这两个选项  

    $ gst-launch-1.0 v4l2src device="/dev/video-usb-cam0" ! videoconvert ! videoscale ! video/x-raw, width=1920, height=1080 ! autovideosink 

    但令人惊讶的是,现在看到的是,使用 MJPEG 转换也, CPU 利用率是107%和 GPU 是30 ,  

    其中 AS、当使用在 a72上运行的 vidoeconvert 时、在同一管道上、 CPU 利用率为 99%、GPU 为30%。 我在这里的理解中是否遗漏了任何东西

    好的

    Gopal S.

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

    Gopal、您好!

    抱歉、我说错了。 这些插件不一定专门利用 GPU;不过、它们确实利用了硬件。 例如、tiovxmultiscalar 利用 MSC。

    您的 CPU 在99-107%? 这似乎太高了。 我的 CPU 使用率目前约为24%。

    此致!
    Jared

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

    gst-launch-1.0 v4l2src device="/dev/video-usb-cam0" ! image/jpeg, width=1920, height=1080,framerate=60/1 ! jpegdec ! queue ! ticolorconvert ! autovideosink

    尊敬的 Jared:

    感谢您提供相关信息。 上面的流水线是我们用来捕获和渲染视频的东西. 同样、我们得到~107的 CPU 利用率。 您是否可以确认是因为使用 jpegdec 将 image/jpeg 转换为原始格式。 如果是这样、是否有其他任何方法可以使此转换占用更少的 CPU 利用率。

    此致!

    Gopal S.

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

    Gopal、您好!

    我的相机是30fps,所以我不能做与你完全相同的测试,但我运行了 三个 管道:

    31.9%
    gst-launch-1.0 v4l2src device="/dev/video-usb-cam0" ! videoconvert ! videoscale ! video/x-raw, width=1920, height=1080 ! kmssink sync=false driver-name=tidss
    
    63.6%
    gst-launch-1.0 v4l2src device=/dev/video-usb-cam0 ! image/jpeg, width=1920, height=1080 ! jpegdec ! tiovxdlcolorconvert ! video/x-raw, format=NV12 ! kmssink driver-name=tidss sync=true
    
    60.1%
    gst-launch-1.0 v4l2src device="/dev/video-usb-cam0" ! image/jpeg, width=1920, height=1080, framerate=30/1 ! jpegdec ! queue ! ticolorconvert ! autovideosink

    第二条和第三条管道与您的管道类似。 这也证实了问题是由 jpegdec 造成的。 可以运行类似于第一个流水线的流水线吗?

    此致!
    Jared