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:Edgeai-tiovx-APP (主要)不在特定分辨率下工作

Guru**** 2398695 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1436469/sk-tda4vm-edgai-tiovx-app-main-is-not-working-with-a-specific-resolution

器件型号:SK-TDA4VM

工具与软件:

尊敬的 TI 专家:

我正在尝试将 edgeai_tiovx_apps 与我自己的 imx568 Linux 摄像头驱动程序结合使用。 当我启动应用程序时、我得到这样的映像:


正如你所看到的,它向我展示了一些从现实,但它是相当扭曲的东西。 它看起来像字节顺序、或者类似的东西在缓冲区中混乱。

在本例中、如果我使用 v4l2-ctrl、则图像已完全捕获。 因此、tiovx 流水线似乎会弄乱一些东西:

$ v4l2-ctl -d /dev/video-imx568-cam0 --set-fmt-video=width=1236、height=1032、pixelformat=RG12 --stream-mmap --stream-skip=10 --stream-count=1 --stream-to-testStream1236.raw


在本例中、我的格式为:
IMX568_CAM_FMT="${IMX568_CAM_FMT:-[fmt:SRGGB12_1x12/1236x1032]}"

为了让事情变得更有趣:我的相机也可以在2472x2064分辨率下运行:
IMX568_CAM_FMT="${IMX568_CAM_FMT:-[fmt:SRGGB12_1x12/2472x2064]}"

在该分辨率下、TIOVX 应用非常完美、就像 v4l2-ctrl 一样。 因此、该问题仅在1236x1032中出现、并且仅在 edgai-apps-stack 中出现。 流是连续的和 AEWB 似乎工作(流适应房间的亮度),所以我认为问题不是与 DCC 文件。

感谢您的帮助!

Zsombor Szalay

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

    尊敬的 Zsombor:

    是否在捕获测试之间将传感器重新配置为所需的格式? 该传感器是否需要 ISP 调优? 每个传感器配置都需要自己的一组 DCC 二进制文件。

    常见问题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1403223/faq-most-common-problems-encountered-when-developing-camera-applications-on-the-am6x

    ISP 调优指南: https://www.ti.com/lit/an/sprad86a/sprad86a.pdf

    谢谢!

    Fabiana

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

    你好、Fabiana!

    我已使用 DEFAULT_DCC_PROFILE_gen 生成 DCC。 我没有进行 ISP 调优、因为默认的 DCC-s 在2472x2064分辨率下运行得非常好(当然、我为不同的分辨率生成了不同的 DCC-s - 1236x1032)。 该输出经过裁剪、碎片化、失真、混乱和混乱是否是缺少 ISP 调优的结果? 图像中间的对角线分离了混合的段、使我认为该误差与自动白平衡和类似的东西无关(误差不对应于 DCC)。

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

    尊敬的 Zsombor:

    在运行 edgeai-gst-apps 时、您是否看到相同的失真? 我建议运行一些基本的 Gstreamer 测试流水线。 请参阅此常见问题解答以帮助您为 IMX568构建管道: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1427869/faq-sk-am69-how-to-stream-from-csi-sensor-to-display-using-gstreamer

    谢谢!

    Fabiana

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

    很遗憾、 edgeai-gst-apps 甚至无法启动。 以下是尝试使用 OptiFlow 时收到的错误:

    root@tda4vm-sk:/opt/edgeai-gst-apps/optiflow# ./optiflow.py ../configs/imx568_gst.yaml 
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       372.665560 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       372.665643 s:  VX_ZONE_INIT:Enabled
       372.665654 s:  VX_ZONE_ERROR:Enabled
       372.665663 s:  VX_ZONE_WARNING:Enabled
       372.666343 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
       372.666476 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
       372.666567 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
       372.666655 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
       372.666667 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
       372.667204 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    
    (python3:1627): GStreamer-CRITICAL **: 13:05:12.388: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed
    
    (python3:1627): GStreamer-CRITICAL **: 13:05:12.388: gst_structure_get_int: assertion 'structure != NULL' failed
       372.689919 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
       372.690380 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       372.808615 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       372.808760 s:  VX_ZONE_INIT:Enabled
       372.808893 s:  VX_ZONE_ERROR:Enabled
       372.808935 s:  VX_ZONE_WARNING:Enabled
       372.809367 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
       372.809576 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
       372.809765 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
       372.810033 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
       372.811296 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
       372.811401 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    
    v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! video/x-bayer, width=1236, height=1032, format=rggb12 ! tiovxisp sensor-name=SENSOR_SONY_IMX568 dcc-isp-file=/opt/imaging/imx568/linear/dcc_viss.bin format-msb=11 sink_0::dcc-2a-file=/opt/imaging/imx568/linear/dcc_2a.bin sink_0::device=/dev/v4l-imx568-subdev0 ! video/x-raw, format=NV12 ! \
    tiovxmultiscaler name=split_01 target=0 \
    \
    \
    split_01. ! queue ! video/x-raw, width=960, height=540 ! queue ! mosaic_0. \
    \
    \
    \
    tiovxmosaic name=mosaic_0 target=1 src::pool-size=4 \
    sink_0::startx="<320>" sink_0::starty="<150>" sink_0::widths="<960>" sink_0::heights="<540>" \
    ! video/x-raw,format=NV12, width=1920, height=1080 ! queue ! tiperfoverlay title="IMX568 Camera" overlay-type=graph ! kmssink driver-name=tidss sync=false
    
    
    (python3:1627): GStreamer-CRITICAL **: 13:05:12.608: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed
    
    (python3:1627): GStreamer-CRITICAL **: 13:05:12.608: gst_structure_get_int: assertion 'structure != NULL' failed
       373.493280 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
       373.497696 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    


    OptiFlow 还可以在2472x2064分辨率(就像 tiovx-apps 一样)下使用同一摄像头正常工作。 以下是这种情况下生成的 GST 流水线:

    v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! video/x-bayer, width=2472, height=2064, format=rggb12 ! tiovxisp sensor-name=SENSOR_SONY_IMX568 dcc-isp-file=/opt/imaging/imx568/linear/dcc_viss.bin format-msb=11 sink_0::dcc-2a-file=/opt/imaging/imx568/linear/dcc_2a.bin sink_0::device=/dev/v4l-imx568-subdev0 ! video/x-raw, format=NV12 ! \
    tiovxmultiscaler name=split_01 target=0 \
    \
    \
    split_01. ! queue ! video/x-raw, width=1280, height=720 ! queue ! mosaic_0. \
    \
    \
    \
    tiovxmosaic name=mosaic_0 target=1 src::pool-size=4 \
    sink_0::startx="<320>" sink_0::starty="<150>" sink_0::widths="<1280>" sink_0::heights="<720>" \
    ! video/x-raw,format=NV12, width=1920, height=1080 ! queue ! tiperfoverlay title="IMX568 Camera" overlay-type=graph ! kmssink driver-name=tidss sync=false

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

    尊敬的 Zsombor:

    您能尝试使用各自的 DCC 二进制文件运行两个测试管线吗? 在运行命令之前、请确保更改传感器配置以匹配测试流水线。

     常见问题解答中的 IMX219示例:

    gst-launch-1.0 \
    v4l2src device=/dev/video-imx219-cam0 io-mode=5 ! queue leaky=2 ! \
    video/x-bayer, width=1920, height=1080, framerate=30/1, format=rggb ! \
    tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_SONY_IMX219_RPI" \
    dcc-isp-file=/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, framerate=30/1 ! \
    kmssink driver-name=tidss sync=false

    谢谢!

    Fabiana

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

    当然、imx219适用于 gst-apps 以及 tiovx-apps (8位和10位也是)。 我已使用 imx219驱动程序作为模板来创建自己的驱动程序。 正如我之前提到的、imx568在2472x2064分辨率下也能够很好地与 gst-app 和 tiovx-apps 配合使用。 但在1236x1032中出现了问题。 tiovx-apps 给我的印象是混乱的图像、GST-apps (如 OptiFlow)甚至无法启动。

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

    尊敬的 Zsombor:

    是的、imx219应按预期工作。 我只是用 imx219管道作为示例、但我可以为您创建 imx568管道。 按照此常见问题解答中的步骤3配置传感器格式、以匹配目标分辨率。

    imx568 (2472 x 2064)

    gst-launch-1.0 \
    v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! \
    video/x-bayer, width=2472, height=2064, framerate=30/1, format=rggb12 ! \
    tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_SONY_IMX568" \
    dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_2472x2064.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_2472x2064.bin format-msb=7 ! \
    video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! \
    kmssink driver-name=tidss sync=false

    imx568 (1236 x 1032)

    gst-launch-1.0 \
    v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! \
    video/x-bayer, width=1236, height=1032, framerate=30/1, format=rggb12 ! \
    tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_SONY_IMX568" \
    dcc-isp-file=/opt/imaging/imx568/linear/dcc_viss_1236x1032.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx568/linear/dcc_2a_1236x1032.bin format-msb=7 ! \
    video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! \
    kmssink driver-name=tidss sync=false

    尝试这些,让我知道1236x1032分辨率是否仍然给你带来麻烦。

    谢谢!

    Fabiana

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

    imx568 (1236 x 1032)的结果-未开始:

    root@tda4vm-sk:/opt/edgeai-tiovx-apps# v4l2-ctl -d /dev/v4l-imx568-subdev0 --set-ctrl=imx568_frame_rate_control=30
    root@tda4vm-sk:/opt/edgeai-gst-apps/scripts# gst-launch-1.0 v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! video/x-bayer, width=1236, height=1032, framerate=30/1, format=rggb12 ! tiovxisp sink_0::device=/dev/v4l-subdev0 sensor-name="SENSOR_SONY_IMX568" dcc-isp-file=/opt/imaging/imx568/linear/dcc_viss_1236x1032.bin sink_0::dcc-2a-file=/opt/imaging/imx568/linear/dcc_2a_1236x1032.bin format-msb=11 ! video/x-raw, format=NV12, width=1236, height=1032, framerate=30/1 ! kmssink driver-name=tidss sync=false
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
      1087.809387 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
      1087.809569 s:  VX_ZONE_INIT:Enabled
      1087.809585 s:  VX_ZONE_ERROR:Enabled
      1087.809680 s:  VX_ZONE_WARNING:Enabled
      1087.810437 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
      1087.810708 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
      1087.810945 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
      1087.811170 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
      1087.811188 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
      1087.812168 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
    Additional debug info:
    ../gstreamer-1.20.7/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    streaming stopped, reason not-negotiated (-4)
    ERROR: pipeline doesn't want to preroll.
    Execution ended after 0:00:00.000321939
    Setting pipeline to NULL ...
    
    (gst-launch-1.0:1804): GStreamer-CRITICAL **: 10:49:19.453: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed
    
    (gst-launch-1.0:1804): GStreamer-Video-CRITICAL **: 10:49:19.454: gst_video_info_from_caps: assertion 'gst_caps_is_fixed (caps)' failed
    ERROR: from element /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0: Unable to init TIOVX module
    Additional debug info:
    ../gst-libs/gst/tiovx/gsttiovxmiso.c(1512): gst_tiovx_miso_negotiated_src_caps (): /GstPipeline:pipeline0/GstTIOVXISP:tiovxisp0
    Freeing pipeline ...
      1087.911086 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
      1087.915581 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 0 alloc's of 0 bytes 
    DDR_SHARED_MEM: Free's : 0 free's  of 0 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    



    imx568 (2472 x 2064)的结果-完美工作:


    root@tda4vm-sk:/opt/edgeai-gst-apps# gst-launch-1.0 v4l2src device=/dev/video-imx568-cam0 io-mode=5 ! queue leaky=2 ! video/x-bayer, width=2472, height=2064, framerate=30/1, format=rggb12 ! tiovxisp sink_0::device=/dev/v4l-subdev0 sensor-name="SENSOR_SONY_IMX568" dcc-isp-file=/opt/imaging/imx568/linear/dcc_viss_2472x2064.bin sink_0::dcc-2a-file=/opt/imaging/imx568/linear/dcc_2a_2472x2064.bin format-msb=11 ! video/x-raw, format=NV12, width=2472, height=2064, framerate=30/1 ! kmssink driver-name=tidss sync=false
    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=6) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       214.762049 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       214.762212 s:  VX_ZONE_INIT:Enabled
       214.762242 s:  VX_ZONE_ERROR:Enabled
       214.762257 s:  VX_ZONE_WARNING:Enabled
       214.763433 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
       214.763609 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
       214.763713 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
       214.763813 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
       214.763838 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
       214.764291 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Redistribute latency...
    ^Chandling interrupt.
    Interrupt: Stopping pipeline ...
    Execution ended after 0:00:21.028692141
    Setting pipeline to NULL ...
    Freeing pipeline ...
       235.986485 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
       235.990928 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 25 alloc's of 94867946 bytes 
    DDR_SHARED_MEM: Free's : 25 free's  of 94867946 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    


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

    尊敬的 Zsombor:

    您是否能够确保 您生成的1236x1032二进制文件与 rggb12格式一致? 我还建议将 imx568添加为具有 SRGGB12_1x12/1236x1032格式的/opt/edgeai-gst-apps/scripts/setup_cameras.sh。 完成添加后、重新运行脚本并再次尝试流水线。

    谢谢!

    Fabiana

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

    你好、Fabiana!

    我从 RTOS-PSDK 中生成了具有"default_DCC_profile_gen"的二进制文件。 以下是我的属性文件:

    SENSOR_ID 568
    PRJ_DIR ../imx568_output
    SENSOR_NAME imx568
    SENSOR_DCC_NAME IMX568
    
    SENSOR_WIDTH 1236
    SENSOR_HEIGHT 1032
    
    # 0=RGGB; 1=GRBG; 2=GBRG; 3=BGGR, 4=MONO
    COLOR_PATTERN 0
    
    # sensor mode: 0 for linear (no decompanding), 1 for WDR (decompanding)
    WDR_MODE 0
    
    # raw sensor image BIT_DEPTH: it may be 8, 10, or 12 for linear sensors; typically 12 for WDR mode because of companding
    BIT_DEPTH 12
    
    # WDR BIT_DEPTH: WDR raw sensor image bitdepth after decompanding, typically 20 or 24
    WDR_BIT_DEPTH 20
    
    # WDR decompanding knee points (comma separated without spaces in between)
    WDR_KNEE_X 0,512,1408,2176,4095,65535
    WDR_KNEE_Y 0,2048,16384,65536,1048063,1048063
    
    # Sensor black level to subtract before decompanding (for linear sensors only and some Sony WDR sensors)
    BLACK_PRE  0
    
    # Sensor black level to subtract after decompanding (for most WDR sensors and all linear sensors)
    BLACK_POST  0
    
    # GAMMA value for compressing 20/24-bit WDR raw to 16-bit ISP internal
    # typically around 50 (0.5) for 24-bit WDR sensors and 70 (0.7) for 20-bit sensors
    GAMMA_PRE 70
    
    # LSB location for H3A input bit range (from bit-H3A_INPUT_LSB to bit-H3A_INPUT_LSB+9) 
    H3A_INPUT_LSB 2
    


    是的、我始终在更改分辨率时修改 setup_cameras.sh、然后再将 SD 卡插入电路板。

    IMX568_CAM_FMT="${IMX568_CAM_FMT:-[fmt:SRGGB12_1x12/1236x1032]}"

    我还将自己的"setup_imx568()"函数添加到此文件中。
    我想问题不在这里、因为正如我在开始提到的、使用 v4l2-ctl 进行捕获可以很好地工作。

    此致、

    Zsombor Szalay

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

    尊敬的 Zsombor:

    您使用的是哪个 SDK 版本? 1236x1032 GStreamer 流水线 无法工作的原因 是 GStreamer 期望宽度(以字节为单位)可以被16整除。 这是 GStreamer 的限制、我们无法最终更改 如果您使用的是 Linux 内核版本6.1及更高版本、由于 j721e-csi2rx (shim)驱动程序强制将宽度设置为多个 PSI-L 字大小(16字节)、因此在使用 yavta capture 时、您可能会看到类似的问题。

    谢谢!

    Fabiana

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

    你好、Fabiana!

    我使用的是 Edgeai SDK 9.2.0.5。 我想像我第一个发言中那样使用 TIOVX 应用、而不是 G-streamer 应用。 我尝试 GST 流水线的原因只是您的要求。 我知道 edgeai-tiovx-apps 与您提到的 G-streamer 问题无关。

    此致、

    Zsombor Szalay

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

    尊敬的 Zsombor:

    您是对的。 我已经联系了开发团队、获得 有关 edgeai-tiovx-apps 故障的答案。 我希望存在类似的宽度限制、但我将在收到响应后更新此主题。

    谢谢!

    Fabiana

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

    尊敬的 Zsombor:

    这似乎是跨步不匹配问题、
    澄清一下、当您 使用 tiovx_apps 以1236x1032分辨率运行时
    1.应用程序是否挂起?
    2.或者运行、但输出失真

    如果是选项2、则是跨度问题、因为1236不是16字节对齐、而2472是对齐
    让我重新解决未对齐的分辨率问题

    此致
    Rahul T R

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

    尊敬的 Zsombor:

    您能否尝试使用此补丁来正确设置对齐方式
    v4l2_capture_module:设置 v4l2 fmt·TexasInstruments/edgeai-tiovx-apps@433da8a 时设置跨度

    此致
    Rahul T R

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

    尊敬的 Rahul:

    感谢您的回答和补丁! 遗憾的是、更改仍未正确对齐线条、即使手动将 fmt.fmt.pix.bytesperline 的值设置为2472、我们也会得到相同的失真图像。

    演示应用会运行、但图像失真。

    此致、

    Andras

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

    你好、Rahul 和 Fabiana!

    我已经从 git 做了改变,但问题仍然存在。 但我认为您是对的、j721e-csi2rx 驱动器产生的错误 COLD。 您是否有任何想法、如何解决此问题?

    此致、

    Zsombor Szalay

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

    这个16字节对齐约束是否会在将来的版本中解决?

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

    尊敬的 Zsombor:

    由于节假日、请预计响应时间会延迟。 感谢您的理解。

    - Fabiana

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

    尊敬的 Zsombor:

    目前没有解决这一限制的计划。 我会让 评论这是否是可以在未来修复的东西。

    我已使用 IMX219测试了此补丁、未看到任何更改。

    谢谢!

    Fabiana

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

    Fabiana、您好!

    感谢您的回答! 您能否请您的一位功能专家同事为我们指明正确的方向? 也许我们可以在内部解决这个问题。 对我来说,仍然不清楚到底是什么原因,问题在管道中或更深层次中的哪个位置存在? 我假设可以通过修改代码来解决该问题。 只需要将一些.c 文件指向我们应该查看的位置就足够了。

    感谢您发送编修。 :)

    此致、

    Andras

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

    安德拉斯、您好!

    将其设置为  
    fmt.fmt.pix.bytesperline manually = 2480

    您可以尝试一下吗?

    此致
    Rahul T R

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

    尊敬的 Rahul:

    是的,我试图这样设置(图像分辨率是1236*1032,这是一个不工作)

    fmt.fmt.pix.bytesperline = 1248;
    fmt.fmt.pix.sizeimage = 1248 * 1032;

    仍然无法正常工作。 我认为,从驱动程序接收图像后, v4l2 API 剥离填充,所以实际的图像分辨率将是1236*1032 ,但我可能在这里错了。

    此致、

    Andras

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

    安德拉斯、您好!

    您能否在下面添加一行
    printf ("SIZEEEEEEEEEEEEEEEEEE %llu\n"、size[i]);

    在下面一行
    https://github.com/TexasInstruments/edgeai-tiovx-apps/blob/53eff2309ac65c17558d62f1b210cd72690e44cf/modules/core/src adm/tiovx_modules.c#L199

    并共享日志

    此致
    Rahul T R

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

    尊敬的 Rahul:

    我运行了我的自定义图形(其中只有一个 VISS 节点)。 下面是具有1236*1032分辨率的日志。

    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=5) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
       102.565057 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
       102.568577 s:  VX_ZONE_INIT:Enabled
       102.568607 s:  VX_ZONE_ERROR:Enabled
       102.568630 s:  VX_ZONE_WARNING:Enabled
       102.571230 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
       102.571368 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
       102.571474 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
       102.571644 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
       102.571671 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
       102.576530 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    tiovx of node
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 1931904
    SIZEEEEEEEEEE 1931904
       106.511345 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
       106.515875 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 13 alloc's of 26287573 bytes 
    DDR_SHARED_MEM: Free's : 13 free's  of 26287573 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    

    谢谢!

    Andras

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

    安德拉斯、您好!

    您能试一下吗

    fmt.fmt.pix.bytesperline = 2480;

    您可以从日志中看到大小
    2559360和 2559360/1032为 2480
    这是每行使用的字节

    此致
    Rahul T R

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

    尊敬的 Rahul:

    我已经尝试了它与2480和也与2496 ,以防万一。 遗憾的是仍然显示相同的失真图像。

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

    安德拉斯、您好!

    更改此值是否会对失真等级产生影响?

    此致
    Rahul T R  

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

    您好!

    遗憾的是、不可以 这是日志和图像、每行字节数值为5600。

    APP: Init ... !!!
    MEM: Init ... !!!
    MEM: Initialized DMA HEAP (fd=5) !!!
    MEM: Init ... Done !!!
    IPC: Init ... !!!
    IPC: Init ... Done !!!
    REMOTE_SERVICE: Init ... !!!
    REMOTE_SERVICE: Init ... Done !!!
        49.212945 s: GTC Frequency = 200 MHz
    APP: Init ... Done !!!
        49.216456 s:  VX_ZONE_INIT:Enabled
        49.216541 s:  VX_ZONE_ERROR:Enabled
        49.216582 s:  VX_ZONE_WARNING:Enabled
        49.219102 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0 
        49.219259 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1 
        49.219528 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2 
        49.219649 s:  VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3 
        49.219676 s:  VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
        49.224403 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
    tiovx of node
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 2559360
    SIZEEEEEEEEEE 1931904
    SIZEEEEEEEEEE 1931904
    TIOVX BYTESPERLINE: 5600
        53.161383 s:  VX_ZONE_INIT:[tivxHostDeInitLocal:115] De-Initialization Done for HOST !!!
        53.165865 s:  VX_ZONE_INIT:[tivxDeInitLocal:204] De-Initialization Done !!!
    APP: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... !!!
    REMOTE_SERVICE: Deinit ... Done !!!
    IPC: Deinit ... !!!
    IPC: DeInit ... Done !!!
    MEM: Deinit ... !!!
    DDR_SHARED_MEM: Alloc's: 13 alloc's of 26287573 bytes 
    DDR_SHARED_MEM: Free's : 13 free's  of 26287573 bytes 
    DDR_SHARED_MEM: Open's : 0 allocs  of 0 bytes 
    MEM: Deinit ... Done !!!
    APP: Deinit ... Done !!!
    

    此致、

    Andras

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

    安德拉斯、您好!

    这仍然是一个未决问题吗?

    此致、

    Fabiana

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

    Fabiana、您好!

    是的、非常好! 如果对此事有任何反馈、我将不胜感激。

    谢谢!

    此致、

    Andras

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

    安德拉斯、您好!

    您能否对 Linux 内核应用以下补丁并进行尝试
    e2e.ti.com/.../0001_2D00_j721e_2D00_csi2rx_2D00_Take_2D00_bytesperline_2D00_from_2D00_usespace.patch

    您可以使用 PSDK-AM67A 软件开发套件(PROCESSOR-SDK-LINUX)|德州仪器 TI.com (PSDK Linux 安装程序)
    修改 Linux 并重新编译

    也可以在 tiovx-apps 中应用
    fmt.fmt.pix.bytessperline = 2480;

    此致
    Rahul T R

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

    尊敬的 Rahul:

    很遗憾、您的更改仍然不会生效、请参阅附件。

    此致、

    Andras

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

    安德拉斯、您好!

    经过进一步调查、驱动程序似乎不支持处理 STRIDE!=宽度
    另一个选项是更改 OpenVX 缓冲区的跨度、但更改最小跨度对齐
    必需值为8 (硬件加速器需要)。 但1236不与8对齐

    获得1236工作的唯一选项是执行从 CMA 到 openVX 缓冲区的 memcopy
    您的摄像机是否支持与8对齐的任何其他分辨率?

    此致
    Rahul T R

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

    尊敬的 Rahul:

    是的,我们有一个工作的解决方案2472*2064, 12位,但我们不想支付应用多标量模块只是为了缩小我们的图像的成本。

    您能否详细介绍一下将 CMA 复制到 openVX 的最佳方法是什么? 此解决方案在性能方面的可能成本是多少?

    谢谢!

    此致、

    Andras

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

    安德拉斯、您好!

    您是否有访问 FW_Builder 的权限?
    我可以为此在 VISS 内核中提供一个黑客攻击
    它需要重建固件、您需要固件构建器

    此致
    Rahul T R

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

    尊敬的 Rahul:

    否、它是开源应用程序还是任何 SDK 软件包的一部分? 我愿意使用它,所以如果你可以提供一些黑客,我真的很感激它!

    提前感谢!

    此致、

    Andras

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

    安德拉斯、您好!

    您如何为摄像机生成 DCC 文件?
    它开箱即用

    您是否使用了 PSDK RTOS SDK?

    此致
    Rahul T R

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

    尊敬的 Rahul:

    是的、我们使用 RTOS 和 Linux SDK、并使用 RTOS SDK 中的 python 工具生成 DCC 文件。

    此致、

    Andras

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

    安德拉斯、您好!

    下面是 PSDK RTOS 映像文件夹中的 Hack

    diff --git a/kernels/hwa/vpac_viss/vx_vpac_viss_target.c b/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    index 01c4bd6..7fa7c19 100755
    --- a/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    +++ b/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    @@ -1613,8 +1613,7 @@ static vx_status tivxVpacVissSetOutputParams(tivxVpacVissObj *vissObj,
    
                         for (cnt = 0u; cnt < TIVX_IMAGE_MAX_PLANES; cnt ++)
                         {
    -                        outPrms->fmt.pitch[cnt] =
    -                            (uint32_t)im_desc->imagepatch_addr[cnt].stride_y;
    +                        outPrms->fmt.pitch[cnt] = im_desc->width * 2;
                         }
                     }
                     else
    


    完成此更改后、请按照以下步骤构建并安装固件到 SD 卡

    1. cd sdk_builder;make sdk_scrub
    2.编辑 脚本/ board_env.sh --- 将 ADAS 更改为 edgeai
    3.编辑 "tools_path.mak"--- 将 PSDK_TOOLS_PATH 更改为 /home/binh/ti
                        ---  Linux_SD_FS_ROOT_PATH?=/media/$(user)/rootfs 至 /media/binh/rootfs
                            linux_sd_fs_boot_path?=/media/$(user)/boot 至 /media/binh/BOOT
    4.创建 SDK -J16
    4.连接 SD 卡;然后运行  - make linux_fs_install_sd

    此致
    Rahul T R

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

    尊敬的 Rahul:

    我已经成功构建了 PSDK RTOS、以下是解决方案(首先是您的 Hack、第二个是固定2480值:

    此致、

    Andras

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

    安德拉斯、您好!

    这是正确的补丁

    diff --git a/kernels/hwa/vpac_viss/vx_vpac_viss_target.c b/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    index 01c4bd6..6d577e3 100755
    --- a/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    +++ b/kernels/hwa/vpac_viss/vx_vpac_viss_target.c
    @@ -1688,7 +1688,7 @@ static void tivxVpacVissSetInputParams(tivxVpacVissObj *vissObj,
         /* Set the Input Format */
         fmt->width = raw_img_desc->params.width;
         fmt->height = raw_img_desc->params.height;
    -    fmt->pitch[0] = (uint32_t)raw_img_desc->imagepatch_addr[0U].stride_y;
    +    fmt->pitch[0] = fmt->width * 2;
         fmt->dataFormat = FVID2_DF_RAW;
    
         switch (raw_img_desc->params.format[0U].pixel_container)

    我们应破解输入俯仰、而不是输出俯仰
    很抱歉混淆

    您可以尝试使用该补丁吗?

    此致
    Rahul T R

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

    尊敬的 Rahul:

    它正在工作,非常感谢您的持续支持! ;)

    祝您周末愉快!

    此致、

    Andras

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

    安德拉斯、您好!

    谢谢你让我知道:)
    您能否将解决方案标记为"已接受"
    以便我可以关闭线程

    此致
    Rahul T R