以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 大家好, 我想以最大 ISP 速率传输 IMX 传感器(使用自动曝光、自动白平衡等功能) 在 i.MX 8M Plus 应用处理器参考手册(附件中的第 13.1.5 节)中,指出最大帧速率为 1080p 时 120fps。 但是,使用 gstreamer 我们只能通过以下方式实现 60fps: gst-launch-1.0 -v v4l2src 设备=/dev/video2 !"video/x-raw,format=YUY2,width=1920,height=1080,framerate=60/1" !队列 !waylandsink 尽管该传感器的最大帧速率为 90fps。 此限制似乎是由于 v42lsrc 插件对帧速率的限制造成的。 是否有任何 NXP 示例应用程序可用于此用例? 如果没有这样的应用程序,我注意到 isp-imx 存储库中有一些应用程序示例(video_test.cpp 和 vvext.cpp),您能否为我们指出有关如何开发此应用程序的正确方向/文件示例? 谢谢您的任何建议! 评估板 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 流媒体 使用 v4l2-ctl 可以使用 ISP 以最大速率进行流式传输(可以通过journalctl -u imx8-isp.service 查看 lSP 日志,isp-imx 应该在调试模式下构建) v4l2-ctl -d2 --set-fmt-video=width=1920,height=1080,pixelformat=YUY2 --stream-mmap 在这里我能够获得 90fps 的帧率。传感器设置为输出 RG10 格式,因此如果设置了PixelFormat=RG10 ,则可以达到最大帧率,但 ISP 功能将无法激活。请注意, isp-vvcam 库驱动程序实现中的 .max_fps 字段必须设置为 60fps。 可视化 可视化似乎受到 Wayland 的限制,例如,如果我设置 imxvideoconvert_g2d 插件 gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=70/1 ! queue ! imxvideoconvert_g2d ! queue ! video/x-raw,format=RGB16,width=320,height=180 ! queue ! waylandsink window-width=320 window-height=180 --no-position 图像有伪影,并且不清楚是否以最大速率进行流式传输。 甚至 gst-launch-1.0 -v videotestsrc ! video/x-raw,format=YUY2,framerate=70/1,width=320,height=180 ! queue ! fpsdisplaysink sync=false video-sink="waylandsink window-width=320 window-height=180 --no-position" signal-fps-measurements=true text-overlay=false fps-update-interval=10000 仅达到 60fps,因此这个限制似乎与 wayland 有关。 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 我在你的另一篇关于 g2d 转换器的帖子中回复了你,你可以再测试一下, 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 添加此部分( videosink="waylandsink sync=false" )对帧速率没有帮助。 进一步说明: 通过使用带有 fakesink 的 fpsdisplaysink,我可以在 1280x720 分辨率下以 90 fps 的速度进行流式传输(但不是1920x1080 ),ISP 功能可以工作,因为当我覆盖传感器时,自动曝光算法处于活动状态。 gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720,framerate=90/1" ! queue ! fpsdisplaysink sync=false video-sink=fakesink signal-fps-measurements=true text-overlay=false fps-update-interval=10000 当我使用没有 ISP 的流时不会发生这种情况,我可以实现 135 fps。 v4l2-ctl -d2 --set-fmt-video=width=1280,height=720,pixelformat=RG10 --stream-mmap 使用 videotestscr 而不是 v4l2src 我可以通过以下方式获得 100fps gst-launch-1.0 -v videotestsrc ! video/x-raw,format=YUY2,framerate=120/1,width=1280,height=720 ! queue ! fpsdisplaysink sync=false video-sink=fakesink signal-fps-measurements=true text-overlay=false fps-update-interval=10000 因此,将传感器格式从 RAW10 转换为 YUY2 可能会浪费一些时间,所以任何关于如何优化这一点的想法都会很有用。 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 尝试“fpsdisplaysink text-overlay=false signal-fps-measurements=true sync=false videosink="waylandsink sync=false ”怎么样? 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 这可能是一个 Wayland 问题,因为 gst-launch-1.0 -v videotestsrc!video/x-raw,格式=YUY2,帧率=70/1,宽度=1280,高度=720!队列!fpsdisplaysink sync=false video-sink=waylandsink signal-fps-measurements=true text-overlay=false fps-update-interval=10000 也能以 60fps 的速度播放。欢迎大家针对这两个问题提出建议。 - 请注意,我们需要某种方式通过 gstreamer 或其他可靠的方式测试 isp 速率,并且其中还使用 isp 功能(例如白平衡、自动曝光和其他来自 m isp 的功能) - 我们还应该能够使用 gstreamer 或其他方式来可视化具有最大帧速率的流。请提出一些方法。 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] @joanxie 我仍然无法达到这个速率,waylandsink 或 display 是否存在其他限制? 我尝试将分辨率改为 1280 x 720。 这里的命令 gst-launch-1.0 -v v4l2src设备=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720,framerate=90/1" !队列!fpsdisplaysink sync =false video-sink =fakesink signal-fps-measurements =true text-overlay =false fps-update-interval =10000 给出 135 帧率(我不知道为什么不是 90) 然而,该命令 gst-launch-1.0 -v v4l2src设备=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720,framerate=90/1" !队列 !fpsdisplaysink sync =false video-sink =waylandsink signal-fps-measurements =true text-overlay =false fps-update-interval =10000 仅提供 60fps。 - 请注意,我们需要某种方式通过 gstreamer 或其他可靠的方式测试 isp 速率,并且其中还使用 isp 功能(例如白平衡、自动曝光和其他来自 m isp 的功能) - 我们还应该能够使用 gstreamer 或其他方式来可视化具有最大帧速率的流。请提出一些方法。 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 抱歉我来晚了,之前一直在处理紧急情况,gstreamer 没有显示 ISP 可以达到的实际帧率,我们已经验证过 ISP0 可以达到 4k@30 ,双 ISP 可以达到 1080p@60 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 谢谢你的努力。你能告诉我你是如何测试这个的吗? 使用时我可以达到 90fps(传感器限制) v4l2-ctl -d2 --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --stream-mmap 但是,我可以在日志中看到(journalctl -u imx8-isp.service)自动曝光和其他 ISP 功能不会被调用。 但是,当使用 gstreamer 时我只能获得 60 fps。 我认为这些限制来自 gstreamer 或 NXP 驱动程序在使用 ISP 功能时对帧速率的一些限制 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 我正在使用 1080p,在您分享的应用程序说明中它应该有 120fps。 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 我使用了 CSI1 端口,所以应该是 ISP0 回复:以最大 ISP 速率(超过 60 fps)流式传输 [IMX8MP] 您使用哪个 ISP?ISP0 还是 ISP1?它们的性能不一样,
View full article