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.

[参考译文] AM62A7:tiovxldc 插件会导致帧速率和屏幕闪烁现象减少

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523873/am62a7-the-tiovxldc-plugin-causes-a-decrease-in-framerate-and-screen-flickering-phenomenon

器件型号:AM62A7

工具/软件:

e2e.ti.com/.../pipeline_5F00_and_5F00_statistics.zip 我们发现 tiovxldc 插件在运行双摄像头视频流流水线时对视频流水线的帧速率有影响。 我们使用的是分辨率为 1920 * 1280、帧速率为 60 的 x3c 摄像头。 摄像头分别安装为/dev/video3 和/dev/video4(在 Linux 中)。 我们分别测试了两种场景:

1.仅使用 tiovxisp 插件。

2.同时使用 tiovxisp 和 tiovxldc 插件。

 在第一种情况下、视频流可以保持 60 的帧速率、而在第二种情况下、两个摄像头流水线的帧速率都会降低、并且屏幕上会出现闪烁现象。 该附件包含使用 TI 提供的检测工具打印的各种插件的帧速率和硬件负载。 我们想知道造成这种现象的原因

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

    您好 Yangtian、

    从性能统计信息中可以看出、使用 LDC 时、DDR 负载为 5.8GB/s。

    您的 DDR 的传输速率是多少? 对于 3200MT/s、此负载的利用率接近 50%、可能导致 DDR 争用和存储器延迟、从而导致 fps 的帧率下降和图像闪烁。  

    此致、

    建中

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

    您好、建中、

    我们的 DDR 传输速率为 3200MT/s 今天我们修改了管道。 它现在仅将 LDC 插件用于一个视频流。 也就是说、一个视频流来自 video3 -> ISP -> LDC -> Mosaic、一个视频流来自 video4 -> ISP -> Mosaic。 流水线和当前统计情况位于附件中、我们发现 帧速率 和闪烁的减少仍然存在。 (我们在终端中启动管道,而不是应用程序。)  目前、DDR 负载不是高电平。 插件?e2e.ti.com/.../20250610.zip 之间是否有一些相互影响

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

    您好、建中、

    目前、在双摄像头图像拼接过程中、有一些关于帧速率和闪烁现象的更新 注:所有摄像机都 独立工作正常。 仅当两个摄像机同时运行时才会出现此问题。 )

    我们继续使用两个 ox3c 摄像头进行图像拼接、但我们将分辨率降低到 1400x1280@60fps、 DDR 保持 3200 的速率。

    现象 1:

    1.我们在两个不同的终端运行以下流水线。

    用于 /de/video3 输出的流水线 1 在没有 LDC 的情况下无法实现:

    gst-launch-1.0 v4l2src device=/dev/video3 io-mode=5 ! video/x-bayer, width=1400, height=1280, format=bggr12, framerate=60/1 ! queue leaky=2 ! tiovxisp sensor-name=SENSOR_OX3C_100 dcc-isp-file=/opt/imaging/ox03c/wdr/dcc_viss_wdr.bin sink_0::dcc_2a_file=/opt/imaging/ox03c/wdr/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev3 format-msb=11 sink_0::pool-size=4 src::pool-size=4 ! video/x-raw, format=NV12, width=1400, height=1280,framerate=60/1 ! tiscaler roi-startx=350 roi-starty=30 roi-width=680 roi-height=1200 method=0 ! video/x-raw, width=1280, height=720, framerate=60/1 ! fakesink

    用于 将/de/video4 输出到文件链接(无 LDC)的管道 2:

    gst-launch-1.0 \
    v4l2src device=/dev/video4 io-mode=5 ! \
    video/x-bayer, width=1400, height=1280, format=bggr12, framerate=60/1 ! \
    queue leaky=2 ! \
    tiovxisp name=isp sensor-name=SENSOR_OX3C_100 \
    dcc-isp-file=/opt/imaging/ox03c/wdr/dcc_viss_wdr.bin \
    sink_0::dcc_2a_file=/opt/imaging/ox03c/wdr/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev4 format-msb=11 \
    sink_0::pool-size=4 src::pool-size=4 ! \
    queue leaky=2 ! \
    v4l2h264enc ! h264parse ! matroskamux ! filesink location=/home/test.mkv

    我们仍然观察到 video4 的 mkv 中出现图像撕裂或屏幕闪烁

    e2e.ti.com/.../tearandflicker.zip

    所以图像在 ISP 之后有一些问题

    2.然后我们使用 yavata 获取原始数据,在原始数据中没有发现问题。

    yavta /dev/video4 -c100 -n100 -s1400x1280 -fSRGGB12 -F/home/yyt/raw/test-#.raw
    
    

    现象 2:

    1. 我们在终端中运行以下流水线。

    gst-launch-1.0 \
    v4l2src device=/dev/video4 io-mode=5 ! \
    video/x-bayer, width=1400, height=1280, format=bggr12, framerate=60/1 ! \
    queue leaky=2 ! \
    tiovxisp name=isp sensor-name=SENSOR_OX3C_100 \
    dcc-isp-file=/opt/imaging/ox03c/wdr/dcc_viss_wdr.bin \
    sink_0::dcc_2a_file=/opt/imaging/ox03c/wdr/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev4 format-msb=11 \
    sink_0::pool-size=4 src::pool-size=4 ! \
    queue leaky=2 ! \
    tiovxldc name=ldc dcc-file=/opt/imaging/ox03c/wdr/dcc_ldc_wdr.bin sensor-name=SENSOR_OX3C_100 \
    sink_0::pool-size=2 src::pool-size=2 ! \
    video/x-raw, format=NV12, width=1280, height=1400,framerate=60/1 ! queue leaky=2 ! \
    tiscaler name=tiscaler roi-startx=0 roi-starty=0 roi-width=1280 roi-height=1400 method=0 ! \
    video/x-raw, width=1920, height=720, framerate=60/1 ! \
    kmssink driver-name=tidss async=false sync=false can-scale=false 

     2.我们在其他终端中使用以下命令。

    v4l2-ctl -d /dev/video3 --set-fmt-video=width=1400,height=1280,pixelformat=RG12 --stream-mmap --stream-loop


    我们发现传感器输出的帧速率开始波动。 当我们停止 上述流水线时、帧速率 恢复 到 60fps。

    注意: 当我们将“kmssink"替换“替换为“fakesink"时“时、这种现象不会发生。

    根据上述测试、您是否有任何解决屏幕撕裂或闪烁问题的建议?

    总之,我们的目标是确保双摄像头拼接流水线在低延迟、高帧率 (>50fps) 和正常图像质量下正常工作。

    gst-launch-1.0 \
    v4l2src device=/dev/video3 io-mode=5 ! \
    video/x-bayer, width=1400, height=1280, format=bggr12, framerate=60/1 ! \
    queue leaky=2 ! \
    tiovxisp sensor-name=SENSOR_OX3C_100 \
    dcc-isp-file=/opt/imaging/ox03c/wdr/dcc_viss_wdr.bin \
    sink_0::dcc_2a_file=/opt/imaging/ox03c/wdr/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev3 format-msb=11 \
    sink_0::pool-size=4 src::pool-size=4 ! \
    video/x-raw, format=NV12, width=1400, height=1280,framerate=60/1 ! \
    tee name=tee ! \
    tiscaler roi-startx=350 roi-starty=30 roi-width=680 roi-height=1200 method=0 ! \
    video/x-raw, width=1280, height=720, framerate=60/1 ! mosaic_0. \
    tee. ! video/x-raw, width=1400, height=1280 ! queue leaky=2 max-size-buffers=1 ! \
    videorate ! video/x-raw, framerate=30/1 ! \
    fakesink \
    v4l2src device=/dev/video4 io-mode=5 ! \
    video/x-bayer, width=1400, height=1280, format=bggr12, framerate=60/1 ! \
    queue leaky=2 ! \
    tiovxisp sensor-name=SENSOR_OX3C_100 \
    dcc-isp-file=/opt/imaging/ox03c/wdr/dcc_viss_wdr.bin \
    sink_0::dcc_2a_file=/opt/imaging/ox03c/wdr/dcc_2a_wdr.bin sink_0::device=/dev/v4l-subdev4 format-msb=11 \
    sink_0::pool-size=4 src::pool-size=4 ! \
    queue leaky=2 ! \
    tiovxldc dcc-file=/opt/imaging/ox03c/wdr/dcc_ldc_wdr.bin sensor-name=SENSOR_OX3C_100 \
    sink_0::pool-size=2 src::pool-size=2 ! \
    queue leaky=2 ! \
    video/x-raw, format=NV12, width=1280, height=1400, framerate=60/1 ! \
    tiovxmultiscaler name=split_0 src_0::roi-startx=30 src_0::roi-starty=10 src_0::roi-width=1220 src_0::roi-height=1380 target=0 interpolation-method=16385 ! \
    video/x-raw, format=NV12, width=640, height=720 ! mosaic_0. \
    tiovxmosaic name=mosaic_0 target=1 src::pool-size=4 \
    sink_0::startx="<640>" sink_0::starty="<0>" sink_0::widths="<1280>" sink_0::heights="<720>" \
    sink_1::startx="<0>" sink_1::starty="<0>" sink_1::widths="<640>" sink_1::heights="<720>" ! \
    video/x-raw,format=NV12, width=1920, height=720, framerate=60/1 ! queue leaky=2 max-size-buffers=1 ! \
    kmssink driver-name=tidss async=false sync=false can-scale=false 

    最棒的餐厅

    Jialin

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

    尊敬的 Jialin:

    SDK 11.0 中的 CSI2-SDK Rx 驱动器有一些修复问题。 尽管 AM62A 没有 SDK 11.0 版本、但您可以尝试将 CSI2-AM62A Rx 驱动器升级到 11.0: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c?h=ti-linux-6.12.y

    此致、

    建中

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

    尊敬的建中:

    这里是 bggr12 原始 datae2e.ti.com/.../1641.raw.zip

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

    尊敬的 Jialin:

    感谢您分享数据。 我检查了大约 20 张图像、但没有看到任何显示图像撕裂的图像。 您是否仍具有工具显示存在问题的原始图像?

    此致、

    建中