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-AM62P-LP:使用 AM62P 上的 GPU 显示图像。

Guru**** 2455580 points
Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1473142/sk-am62p-lp-using-gpu-on-am62p-for-displaying-the-images

器件型号:SK-AM62P-LP
主题中讨论的其他器件:AM62P5AM62P

工具与软件:

我们将使用该流水线在我们的 AM62p5上展示马赛克。

gst-launch-1.0 \
v4l2src device=/dev/video3 ! queue max-size-buffers=1 leaky=2 ! video/x-raw, width=1280,height=720,framerate=30/1, format=UYVY ! ticolorconvert ! queue ! mosaic.sink_0 \
v4l2src device=/dev/video4 ! queue max-size-buffers=1 leaky=2 ! video/x-raw, width=1280,height=720,framerate=30/1, format=UYVY ! ticolorconvert ! queue ! mosaic.sink_1 \
v4l2src device=/dev/video5 ! queue max-size-buffers=1 leaky=2 ! video/x-raw, width=1280,height=720,framerate=30/1 ,format=UYVY ! ticolorconvert ! queue ! mosaic.sink_2 \
v4l2src device=/dev/video6 ! queue max-size-buffers=1 leaky=2 ! video/x-raw, width=1280,height=720,framerate=30/1 ,format=UYVY ! ticolorconvert ! queue ! mosaic.sink_3 \
timosaic name=mosaic \
sink_0::startx=0 sink_0::starty=0 sink_0::width=640 sink_0::height=360 \
sink_1::startx=640 sink_1::starty=0 sink_1::width=640 sink_1::height=360  \
sink_2::startx=0 sink_2::starty=360 sink_2::width=640 sink_2::height=360 \
sink_3::startx=640 sink_3::starty=360 sink_3::width=640 sink_3::height=360 ! \
video/x-raw, width=1280, height=720, framerate=30/1, format=NV12 ! queue ! kmssink driver-name=tidss sync=false force-modesetting=true

如何使用 AM62P 上的 GPU 来显示图像?

我们正在研究 GPU 加速、我们发现在 AM62pXX 上、它消除了对 TIOVX 的依赖关系

# Remove edgeai-tiovx-modules dependency for ARM only devices
DEPENDS:remove:am62xx = "edgeai-tiovx-modules"
DEPENDS:remove:am62pxx = "edgeai-tiovx-modules"
RDEPENDS:${PN}:remove:am62xx = "edgeai-tiovx-modules"
RDEPENDS:${PN}:remove:am62pxx = "edgeai-tiovx-modules"
RDEPENDS:${PN}-source:remove:am62xx = "edgeai-tiovx-modules-dev"
RDEPENDS:${PN}-source:remove:am62pxx = "edgeai-tiovx-modules-dev"

COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j722s|am62axx|am62xx|am62pxx"



是否有任何理由将其删除?

此致、

塞尔希奥

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

    您好、Sergio、

    我使用了以下流水线来使用 GPU。

    摄像头-> GPU ->编码->文件:


    gst-launch-1.0 -v v4l2src device=/dev/video2 num-buffers=200! video/x-raw、format=1920、height=1080、format=UYVY、帧速率=30/1! 胶片! 玻璃转换器! gldownload! video/x-raw、格式=NV12、宽度=1920、高度=1080! v4l2h264enc output-io-mode=dmabuf! filesink location=temp-gl.264

    文件->解码->显示:

    gst-launch-1.0 -v filesrc location=temp-gl.264 ! h264parse! v4l2h264dec capture-io-mode=dmabuf! kmssink driver-name=tidss sync=false 强制模式设置=true

    希望这对您有所帮助。

    此致、

    Suren

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

    尊敬的 Suren:

    感谢您的快速响应。

    我已经测试了您发送给我的管道、但不幸的是、它不起作用。

    gst-launch-1.0 -v v4l2src device=/dev/video3 num-buffers=200! video/x-raw、width=1280、height=720、format=UYVY、framerate=30/1! 胶片! 玻璃转换器! gldownload! video/x-raw、格式=NV12、宽度=1280、高度=720! v4l2h264enc output-io-mode=dmabuf! filesink location=temp-gl.264

    root@am62pxx-evm:~# gst-launch-1.0 -v v4l2src device=/dev/video3 num-buffers=200! video/x-raw、width=1280、height=720、format=UYVY、framerate=30/1! 胶片! 玻璃转换器! gldownload! video/x-raw、格式=NV12、宽度=1280、高度=720! v4l2h264enc output-io-mode=dmabuf! filesink location=temp-gl.264
    正在将管道设置为暂停...
    管道处于活动状态、不需要 PREROLL ...
    从元素"glElements download0"获取上下文:gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplayDisplayDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
    管道是 PREROLLED ...
    正在将管道设置为播放...
    新时钟:GstSystemClock
    错误:来自元素/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:内部数据流错误。
    其他调试信息:
    /usr/4510debug/gstreamer1.0/1.22.12/libs/gst/base/gstbasesrc.c src (3134):gst_base_src_loop ():/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    流已停止、未协商原因(-4)
    执行在0:00:00.060197765之后结束
    正在将管道设置为空...
    警告:仍连接代理时队列0xffffff90000be0已销毁:
     XDG_WM_BASE@7仍连接
     WL_SEAT@6仍然连接
     WL_subcomposator@5仍处于连接状态
     WL_COMPOSER@4仍处于连接状态
     WL_REGISTRY@2仍附加
    正在释放管道...

    只有一个视频,我们一直在使用波纹管

    gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw、format=UYVY、width=1280、height=720、帧速率=30/1! 视频转换! kmssink driver-name=tidss sync=false 强制模式设置=true

    我们在 CPU 使用方面取得了不错的效果



    但是,当我们使用马赛克显示3摄像头同时我们有严重的 CPU 使用问题。 我们正在使用波纹管与马赛克

    gst-launch-1.0 \
    v4l2src device=/dev/video3 ! 队列 max-size-buffers=1泄漏=2! video/x-raw、宽度=1280、高度=720、帧速率=30/1、格式=UYVY! 视频转换! 队列! mosaica.sink_0 \
    v4l2src device=/dev/video4 ! 队列 max-size-buffers=1泄漏=2! video/x-raw、宽度=1280、高度=720、帧速率=30/1、格式=UYVY! 视频转换! 队列! mosaica.sink_1 \
    v4l2src device=/dev/video5 ! 队列 max-size-buffers=1泄漏=2! video/x-raw、宽度=1280、高度=720、帧速率=30/1、格式=UYVY! 视频转换! 队列! mosaica.sink_2 \
    v4l2src device=/dev/video6 ! 队列 max-size-buffers=1泄漏=2! video/x-raw、宽度=1280、高度=720、帧速率=30/1、格式=UYVY! 视频转换! 队列! mosaica.sink_3 \
    timosaic name=mosaic \
    Sink_0::startx=0 sink_0:starty=0 sink_0::width=640 sink_0::高度=360 \
    Sink_1::startx=640 SINK_1::starty=0 SINK_1::width=640 SINK_1::高度=360 \
    Sink_2::startx=0 Sink_2::starty=360 Sink_2::width=640 Sink_2:::height=360 \
    Sink_3::startx=640 SINK_3:starty=360 SINK_3::width=640 SINK_3::height=360! \
    video/x-raw、宽度=1280、高度=720、帧速率=30/1、格式=NV12! 队列! kmssink driver-name=tidss sync=false 强制模式设置=true

    ...

    BR、

    塞尔希奥

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

    您好、Sergio、

    我了解到、随着视频转换和过时仍然是软件插件、硬件中没有做任何工作、CPU 的利用率将会提高。

    此外、我正在内部咨询我们的软件团队、timosaic 是否可以添加对 YUY2或 UYVY 以及 NV12的支持、从而允许在 AM62P 上使用 video/ticolorconvert 删除颜色转换。

    如果未来的 SDK 版本可能支持或不支持此功能、请允许我在几天内回复。

    此致、

    Suren

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

    尊敬的 Suren:

    感谢您的答复、

    我知道、随着视频转换和过时技术仍然是软件插件、硬件中没有任何操作、CPU 的利用率将会提高。

    是否有办法通过 AM62P 中的硬件实现此目的?

    我们已在处理器文档中看到、其中我们发现有方法可以使用 VPAC、ISP 等进行这种处理、但当我们尝试在电路板中使用此方法时、结果无法正常工作。

    我们还试图使用 tiovx 插件见波纹

    github.com/.../tiovx

    但我们无法在电路板上启用它。  是否有正确的方法启用它?

    我们参考了这份材料  
    www.ti.com/.../spradh2a.pdf

    还会带来这条流水线

    gst-launch-1.0 \
    v4l2src device=/dev/video-imx219-cam0 IO-mode=5! 队列 max-size-buffers=1泄漏=2! 视频/x -
    bayer、width=1920、height=1080、帧速率=30/1、format=bggr! \
    tiovxisp sink_0::设备=/dev/v4l-imx219-subdev0 sensor-name=sensor_Sony_IMX219_RPI DCC-isp-
    文件=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7! \
    video/x-raw、format=NV12、width=1920、height=1080! 队列! mosaica.sink_0 \
    v4l2src device=/dev/video-imx219-cam1 IO-mode=5! 队列 max-size-buffers=1泄漏=2! 视频/x -
    bayer、width=1920、height=1080、帧速率=30/1、format=bggr! \
    tiovxisp sink_0::设备=/dev/v4l-imx219-subdev1 sensor-name=sensor_Sony_IMX219_RPI DCC-isp-
    文件=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7! \
    video/x-raw、format=NV12、width=1920、height=1080! 队列! mosaica.sink_1 \
    v4l2src device=/dev/video-imx219-cam2 IO-mode=5! 队列 max-size-buffers=1泄漏=2! 视频/x -
    bayer、width=1920、height=1080、帧速率=30/1、format=bggr! \
    tiovxisp sink_0::设备=/dev/v4l-imx219-subdev2 sensor-name=sensor_Sony_IMX219_RPI DCC-isp-
    文件=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7! \
    video/x-raw、format=NV12、width=1920、height=1080! 队列! mosaica.sink_2 \
    v4l2src device=/dev/video-imx219-cam3 IO-mode=5! 队列 max-size-buffers=1泄漏=2! 视频/x -
    bayer、width=1920、height=1080、帧速率=30/1、format=bggr! \
    tiovxisp sink_0::设备=/dev/v4l-imx219-subdev3 sensor-name=sensor_Sony_IMX219_RPI DCC-isp-
    文件=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7! \
    video/x-raw、format=NV12、width=1920、height=1080! 队列! mosaica.sink_3 \
    tiovxmosaic name=mosaic \
    Sink_0::startx="<0>" Sink_0:starty="<0>" Sink_0::width="<640>" Sink_0::heights="<480>"\
    Sink_1::startx="<0>" Sink_1::starty="<480>" Sink_1::width="<640>" Sink_1::height="<480>"\
    Sink_2::startx="<640>" Sink_2:starty="<0>" Sink_2::width="<640>" Sink_2::heights="<480>"\
    Sink_3::startx="<640>" Sink_3::starty="<480>" Sink_3::width="<640>" Sink_3::heights="<480>"! \
    队列! video/x-raw、width=1920、height=1080! 队列! kmssink driver-name=tidss sync=false 强制
    模式设置= true

    我们做了一些改变,但对我们"tiovxisp","tiovxmosaic "不被识别。

    此致、

    塞尔希奥

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

    您好、Sergio、

    由于没有 VPAC 硬件加速器或 TIOVX 支持、因此这些加速器在 AM62P 上不起作用。 仅在 AM62A SoC 上提供。

    请允许我几天时间返回 ticolorconvert 或 timosaic。

    此致、

    Suren

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

    尊敬的 Suren:

    感谢您的答复、我们将等待您的退货。

    此致、

    塞尔希奥

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

    您好、Suren、有没有 ticolorconvert 或 timosaic 的任何更新。


    此致、
    塞尔希奥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请允许我几天时间重新使用 ticolorconvert 或 timosaic。

    您好、Suren、有没有 ticolorconvert 或 timosaic 的任何更新。


    此致、
    塞尔希奥

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

    您好、Sergio、

    我正在跟踪团队的进度。  
    只是为了我的理解,由于 Weston/wayland 依赖性,glcolorconvert 不能用于您的用例?

    此致、

    Suren

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

    尊敬的 Suren:


    为了便于我理解、由于 Weston/wayland 依赖性、glcolorconvert 不能用于您的用例?

    有。

    此致。