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.

[参考译文] AM67:isl7998x 上的根本原因视频失真经过 ticsi2rx

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1521697/am67-root-cause-video-distortion-on-isl7998x-going-through-ticsi2rx

器件型号:AM67

工具/软件:

我们正在  Linux SDK 版本6上使用 isl7998x 驱动程序。

默认情况下、此驱动程序有一个字段排序:

V4L2_FIELD_SEQ_TB
V4L2_FIELD_SEQ_BT

此 TI CSI Shim 驱动程序(和 Cadence CSI 驱动程序)不支持现场订购。

我注意到、此芯片及其 CSI 模块(适用于旧内核版本)的 NXP 驱动程序需要在 CSI 驱动程序支持字段中添加补丁来支持该芯片。

生成的图像是否可能来自不支持现场排序的 CSI 驱动程序?
找出此类问题根源的最佳方法是什么?




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

    尊敬的 Evan:

    图像似乎已变形。 是这样吗?

    此外、您能否尝试编辑 cdns-csi.c 驱动程序、以便 csi2rx_set_fmt 函数将字段设置为  V4L2_FIELD_SEQ_TB、而不是 V4L2_FIELD_NONE。

    此致、
    Jared

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

    您好 Jared、

    我发现在 csi2rx_set_fmt 中设置标志 会使其不稳定。 闪烁和一些绿色帧。

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

    尊敬的 Evan:

    除了闪烁和绿色帧之外、图像看起来是否正确?

    此外、您是否有以下问题的答案:

    [报价 userid="574088" url="~/support/processors-group/processors/f/processors-forum/1521697/am67-root-cause-video-distortion-on-isl7998x-going-through-ticsi2rx/5850469 #5850469"]

    图像似乎已变形。 是这样吗?

    [/报价]

    此致、
    Jared

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

    您好 Jared、

    图像没有变形,我用我的手机从一个奇怪的角度拍摄的照片。
    我认为设置标志实际上没有任何变化。

    这里有两个稳定的屏幕抓图。 我发现设置"v stable"位可以防止我看到的绿色失真。 (它位于 isl7998x 芯片内)

    "4 VSTABLE R/W
    0 =忽略解码器的‘VSTABLE"标志、始终进行正常的输出传输。
    1 =使用解码器中的"VSTABLE"标志执行正常的输出传输或停止
    输出传输。

    使用 cdns_csi2rx.30121000.csi-bridge 字段时:


    使用 cdns_csi2rx.30121000.csi-bridge 字段时: SEQ-bt


    另外,我发现在解码器中设置"Config input""Progressive "位,并打开一个测试模式,视频源工作和稳定,绘制整个测试图像。
    但是! 如果我尝试在此模式下使用相机、它不会绘制/更新图像的最后一半。 (似乎 isl7998x 无法将 NTSC 顶部/底部编码信号转换为逐行)

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

    尊敬的 Evavn:

    您 是否能够使用寄存器0x09测试播放?寄存器0x09是 isl7998x 的一种场模式控制?

    此致、
    Jared

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

    您好 Jared、

    是的、这是一个设置了位的图像。
    摄像头仅更新上半部分和测试图像中的下半部分过时数据。


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

    您好 Jared、

    你认为它是可以在软件中修复这个,也许使用 gstreamer 的 x-raw interlace-mode=fields , views=2 ! 系带 ?
    我复制了 Seq-Bt 标志、我能够打开 x-RAW 焊盘以进行捕获、但我现在无法将其通过管道传输到内框中。 接受建议

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

    尊敬的 Evan:

    你可以尝试 脱衣架

    此致、
    Jared

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

    您好 Jared、

    尽管向流水线添加了分隔符、但它仍然是隔行扫描的。

    即使我们可以使用"分隔符"、我们仍然 希望 CSI 驱动程序支持基于 DMA 的分隔符、以减少 CPU 负载。 (Gstreamer 的"分隔符"增加了~65%的 CPU 使用率、我们希望所有4个流同时使用)

    您认为去隔行应在哪里完成?
    我们可以修改驱动程序、或者向设备树中添加可以进行转换的其他项目?
    我发现这例如: https://www.kernel.org/doc/html/v5.8/admin-guide/media/imx.html
    我讨论了一个  VDIC 块执行该操作。 但这似乎仅适用于 IMX。
    也许我们使用

    CONFIG_VIDEO_MEM2MEM_DEINTERLACE

    mem2mem 设置 DMA、那么硬件加速似乎是这样、但可能需要 v4l2环回吗? 也许这也是不正确的。
    我们可以关闭此票证、因为它是根本原因、我将打开另一个票证。

    要关闭 gstreamer 的"分隔符"为何不起作用的循环、它似乎不支持 SEQ_BT 或 SEQ_TB。

    ti_csi2rx_start_dma 可能是我的最佳选择。

    如果您添加了 multiview-mode=从上到下 到 gstreamer 流水线、 它会将图像组合成240高度图像、颜色失真...