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.

[参考译文] J722SXH01EVM:来自 V4L2器件的摄像头水平分辨率似乎有一个上限(不带 ISP)

Guru**** 2393725 points
Other Parts Discussed in Thread: J722SXH01EVM, AM67A, BEAGLEY-AI, AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1475312/j722sxh01evm-there-appears-to-be-an-upper-limit-to-the-horizontal-resolution-of-a-camera-from-the-v4l2-device-without-isp

器件型号:J722SXH01EVM
主题中讨论的其他器件: AM67ABeagley-AIAM62A7

工具与软件:

我有一个 J722SXH01EVM 板(带有 AM67A 处理器)和最多连接了我们自己设计的4个摄像头。 我不使用 V3link 板、我将每个摄像头单独连接到板上的4个 CSI 端口。 我们使用的摄像头具有2048x1552 (3 MP)或2464x2064 (5MP)像素的分辨率、我们将直接从 V4L2器件捕获10位像素数据、即我们不使用 GStreamer 而不使用 ISP。 3 MP 摄像头可与我们的软件正常工作、但5 MP 摄像头会产生损坏的图像、除非我们将图像宽度降至约2304像素以下。

为了排除我们的软件是我测试过的问题的根源、我转而使用类似这样的简单 GStreamer 流水线(使用摄像头设备、图像数量、宽度和高度以及在适当环境变量中设置图像的目录):

gst-launch-1.0 \
  v4l2src device=${CAM_DEVICE} io-mode=dmabuf-import num-buffers=${NUM_OF_IMAGES} ! video/x-bayer, width=${CAMERA_WIDTH}, height=${CAMERA_HEIGHT}, framerate=10/1, format=rggb10 ! \
  tiovxmemalloc ! \
  multifilesink location=${DIR}/cam${DEVICE}_%05d.raw
  

在使用流水线之前,我总是将媒体控制器设备和我们的摄像头设置为正确的分辨率。

生成的图像文件包含每像素16位(2字节)以内的10位 Bayer 数据、如果设置了适当的配置文件、则可以使用 Pixelviewer 应用程序在 PC 上显示。 然后可以保存图像的 JPG 版本、例如。

我已经做了三个分辨率: 1920x1080(HD ), 2304x2464和2464x2064(最大值),我看到两个较小的分辨率是好的,但2464x2064版本是不正确的(见下文)。 它在图像的左侧和底部显示一条不正确的像素带。

AM67A 的数据表 提到了 ISP 的上限:"线路支持高达4096"、但没有明确针对 CSI2端口或 V4L2驱动器。

我的问题:

  • 在没有 ISP 的情况下使用 CSI2端口时、分辨率是否有上限、尤其是线宽?
  • 如果是、限制是什么?我在这里看到它的影响吗?


一如既往地感谢 TI 的大力支持!

——
Howard

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

    您好、Howard:

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

    根据上述宽度要求、故障分辨率(2464x2064)应该可以处理 此限制。 您是否尝试过交换 CSI 端口或带状电缆? 您是否单独运行5MP 传感器?

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    感谢您的答复。 一些附加信息。

    • 我正在运行 SDK 10.01.00.04 (这是 Linux 内核6.6)、但我也测试了09.02.00.05、以防 SDK 10中有新内容。 不同的是、因为我在 SDK9中看到相同的特性。
    • 我只使用 Gstreamer 显示问题不在我们的软件中。 事实上、我们的软件根本不使用 GStreamer、因为它仅从 V4L2器件本身流。 因此、如果存在限制、则可能是在硬件、CSI 驱动程序或 DMA 驱动程序中。
    • 我在使用单个摄像头或使用多个摄像头时遇到了问题。 它似乎与特定 CSI 端口或带状电缆无关、因为我们的5个 Mpix 摄像头中有2个连接到端口0和端口1、并且都显示了问题。
    • 问题与帧速率无关。
    • 问题与图像的高度(行数)无关。
    • 我们的软件仅允许以32个像素步长调整宽度。 没有单个故障分辨率:所有32像素对齐宽度>2304且<= 2464都显示了问题、即它看起来是一个上限、而不是特定的分辨率。
    • 我们的相机也有自己的固件,但我认为我也可以排除一个错误这个固件,因为相同的相机在连接到不同的平台(NVIDIA Jetson)工作正常.
    • 我还没有尝试过 yavta。

    我知道 TI 已成功测试了另一家供应商的5个 Mpix 摄像头。 问题可能是、10位模式是否已在摄像机>= 5 Mpix 下进行过测试?

    此致、

    ——

    Howard

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

    尊敬的 Fabiana:

    刚刚测试了'yavta',它显示了相同的效果/问题,当使用最大分辨率2464x2064。 它在较低分辨率下能够正常工作。

    我还尝试在周围交换摄像机、例如、在端口0上放置一个3 Mpix 摄像机、在端口2上放置一个5 Mpix 摄像机、但仍然没有乐趣。 在任何 CSI 端口上、完整的5Mpix 分辨率无法正常工作。

    ——

    Howard

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

    您好、Howard:

    感谢您的详细答复。 这不是我自己遇到的问题、但我正在 内部查看这是否是已知问题。

    使用最新的 SDK 版本10.1、我已经  在 J722S 上启用和验证了5MP (2592x1944) OX05B1S 传感器、未观察到任何此类图像质量问题。 传感器的最大帧速率为60fps、 格式为 bggi10、 需要适配器电缆将其连接到 EVM、并使用 DCC 二进制文件进行 ISP 调优。 您的传感器是否能够支持 2592宽度大小 、或者2464x2064确实是最大值?

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    非常感谢您的测试。 很高兴知道更高的分辨率是可能的、并且不应该有真正的限制。

    • 我们的最大分辨率为2464x2064。
    • 使用 Beagley-AI 电路板时、我们也会看到相同的问题。

    但是、我已经开始尝试使用较旧的摄像头固件、因为我可以相当肯定的是、我们几个月前没有看到这个问题、而且我们的较旧固件看起来还可以、或者至少更好。 我将在这里与固件开发人员一起做一些更多测试、当我了解更多信息时、我们会给您回复。

    再次感谢您的帮助。

    ——

    Howard

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

    您好、Howard:

    听起来不错。 如果我发现任何感兴趣的内容、我将更新该主题。

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    我们离得越来越近了! 在我们的最新摄像头固件中、我们将默认 CSI 数据速率从594Mbps 更改为1188Mbps、这确实是导致该问题的原因。 在使用我们最新的固件时、设置891或594Mbps 可解决该问题。 注意:我们不会从带状电缆上的 CSI 时钟派生像素时钟。

    根据 AM67x 处理器数据表

    CSI-RX 支持1、2、3或4数据通道模式
    每通道高达2.5Gbps

    每通道1188Mbps 时、我相信我们仍然低于此限值、也低于校正校准的1.5Gbps 限值、或者我在这里遗漏了什么? 此外、当我们仅使用2个 CSI 通道@ 1188Mbps/通道时、也不会出现问题、这似乎可以排除该数据速率/通道的一般问题。

    很难相信我们的带状电缆是如此糟糕以至于会导致问题(它们在 NVIDIA Jetson 上以该速率工作)、那么除了数据表中提到的2.5Gbps 每通道速率限制外、AM67A 对于总 CSI-RX 数据速率是否还有另一个限制? OX05B1S 的数据速率/通道是多少、正在使用多少个通道?

    此致、

    ——

    Howard

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

    您好、Howard:

    我很高兴听到问题的根源正在缩小! 针对 x05b1s 完全5MP (2592x1944)分辨率的10位输出数据速率为960Mbps (4通道)。 尚未在线提供 J722S 的 ox05b1s 器件树覆盖、但 如果需要、可以参阅 AM62A7: k3-am62a7-sk-csi2-ox05b1s.dtso 

    谢谢!

    Fabiana

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

    Fabiana、您好!

    在我们最新的摄像头固件更新之后、当发送 V4L2_CID_LINK_FREQ 控件时、我们的摄像头驱动程序仍为主机接收器提供旧值、因此这是错误的。 我现在已经更正了此问题、因此当数据速率为1188Mbps 时、将返回594000000。 通过在函数 csi2rx_configure_ext_dphy (media/platform/cadence/cdns-csi2rx.c)中添加一些调试行、我可以看到现在正在使用该值配置 D-PHY。

    但是,这并没有解决这个问题,我仍然得到类似的损坏的图像,当以1188 Mbps /通道与全分辨率2464 x 2064 @ 10 BPP 和4 CSI 通道运行摄像头时

    我们将尝试使用其他制造商提供的电缆进行测试、但与此同时、您是否知道已执行任何其他测试来测试 EVM (或 Beagley-AI)的硬件(数据速率为1188Mbps 或更高)? 您提到的 Omnivision 传感器以960 Mbps 的速率运行、与我们的891 Mbps 模式类似、并且运行良好。

    谢谢。

    ——

    Howard

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

    您好、Howard:

    据我所知、 我们支持 J722S 上开箱即用的传感器都不会以1188Mbps 或更高的速率运行。 我已经查看了我能够找到的有关大多数此类传感器的数据表、但是没有找到达到或超过1188Mbps 的数据表。 正如您之前所指出的、此数据速率不应该存在问题、因为它低于 J722S 数据表上规定的支持值、因此我已联系我们的硬件团队、以更深入地了解导致该问题的任何潜在原因。

    请在此处参阅 J722S 上当前支持的传感器列表: https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/10_01_00_04/exports/docs/imaging/imaging_release_notes.html

    谢谢!

    Fabiana

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

    您好、 Howard:

    我还在等待回传是否有任何传感器以1188 Mbps 或更高的速率进行测试、但我获得了一些有关验证过程的信息。

    为了进行电气验证、测试了运行速率为2.5Gbps 的单通道。 DUT 期望1920x1198、YUV422_8B、每像素2个字节。 在最坏情况下传递了该 CSIRX 配置。

    您提到594和891 Mbps 模式可以正常运行。 这是 全分辨率2464x2064吗? 是否 需要使用1188Mbps 而不是 在4通道数据模式下降低数据速率?

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    感谢您提供信息。 我们还在这里进行测试和试验。

    594和891 Mbps 的工作速度、全分辨率为2464x2064。

    当前的项目对于891Mbps 可能没有问题、但我们正在为其他项目实施几个不同的传感器、这些项目能够以大于1188Mbps/通道的数据速率运行、因此我们肯定需要这些速率。

    此致、

    ——

    Howard

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

    您好、Howard:

    我们的 CSIRX 硬件工程师 不知道在4通道中使用更高数据速率时会出现任何硬件问题、但我会花时间对此进行一些研究、并会分享我认为可能有用的任何新信息。  

    谢谢!

    Fabiana

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

    您好、Howard:

    我发现 RTOS 传感器使用的数据速率介于1300-1500 Mbps 之间。  例如、请参阅 AR0820 src 驱动程序:https://git.ti.com/cgit/processor-sdk/imaging/tree/sensor_drv/rtos/ar0820/iss_sensor_ar0820.c?h=main#n92

    谢谢!

    Fabiana

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

    尊敬的 Fabiana:

    我有一些好消息! 我们似乎正在处理本常见问题解答中所述的问题:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1476091/faq-am6x-how-do-i-fix-stream-fifo-overflow-errors-in-the-csi2rx-linux-driver-with-num_pixels

    当我将其中记录的补丁应用到cdns-csi2rx和 j721e-csi2rx驱动程序时、我不再看到我们的5 Mpix 传感器存在问题。 (我也会使用12 Mpix 传感器进行测试、这只是为了确保正确)。

    我将在完成更多测试后关闭此 TT。

    感谢您的帮助。

    ——

    Howard

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

    您好、Howard:

    这是很高兴听到,我期待听到你的其余测试的结果!

    谢谢!

    Fabiana

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

    Fabiana、您好!


    您是否知道 cdns-csi2rx和的补丁是否 j721e-csi2rx会将其放入 SDK 11.x 中? 我注意到 Cadence 驱动程序似乎已在 TI 内核的该补丁中扩展、这可能是该问题的一部分...

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/media/platform/cadence/cdns-csi2rx.c?h=ti-linux-6.12.y&id=865ee617c2e483b542fc6d5f04d6cc17e163bb07

    但是、我j721e-csi2rx在 TI 内核库中找不到任何相应的驱动程序更改、但可能遗漏了一些内容。

    如果您能从开发人员团队中了解到这种情况的状态、那将是很好的选择。

    谢谢!

    ——

    Howard

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

    尊敬的 Fabiana:

    您是否已了解有关这些修补程序的更多信息以及它们或类似的修补程序是否 会成为 SDK 11.x 的一部分? 或者我们是否需要自行修补内核?

    谢谢。

    ——

    Howard

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

    您好、Howard:

    是的、此修补程序将包含在11.0版本中。

    谢谢!

    Fabiana