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.

[参考译文] TDA2P-ACD:USSI2CalMultiCam_View 用例中的 UYVY 10位支持

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/675736/tda2p-acd-uyvy-10bit-support-in-csi2calmulticam_view-usecase

器件型号:TDA2P-ACD

您好!

我目前正在使用2MP 摄像头传感器作为 csi2CalMultiCam_View 用例(在 VisionSDK3.2中)。

来自传感器的 YUV 流格式如下所示-每个组件都有10位:

为了支持此流、我将 inCsi2DataFormat 更改为 VPS_ISS_CAL_CSI2_YUV422_10B (0x1F)、并将提取类型更改为 VPS_ISS_CAL_PIX_EXRCT_B10_MIPI、但我没有获得正确的映像(全是绿色映像)。

我是否需要更改其他内容才能从上面的流中获取正确的图像?

当我们将摄像头传感器更改为使用8位(而不是10位)时、我们可以正确地看到图像。

此致、

James

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

    尊敬的 James:

    请注意、当您捕获10位 YUV 输出时、它将存储在16位容器中。 CAL 不能将10位转换为8位输出并将其存储为 YUV422 8b。 那么、您能否首先通过在某些十六进制查看器中查看像素值来检查捕获的图像是否正确? 每个组件应恰好具有10位。

    此致、

    Brijesh

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

    您好、Brijesh、

    感谢您的输入。  

    我要附加一个帧转储文件。

    在将帧发送到 QNX 屏幕之前就会捕获该帧(我们使用 InfoADAS2.6)。

    我假设:

    字节0:0x01 -> CB1[9:2]

    字节1:0x80 -> Y1[9:2]

    字节2:0x01 -> CR2[9:2]

    字节3:0x80 -> Y2[9:2]

    字节4:0x11 -> LSB (CB1[1:0]、Y1[1:0]、CR2[1:0]、Y2[1:0])

    显示此格式时是否出现任何问题?

    此致、

    James

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

    尊敬的 James:

    如果启用了像素提取模块、来自 CAL 的输出不会以这种格式存储。 提取模块将从 MIPI 格式提取像素数据并转换为线性格式。 因此输出应存储在中

    具有低10位有效位和高6位0的 CB[15:0]

    Y[15:0]、低10位有效、高6位0

    具有 低10位有效和高6位0的 CR[15:0]

    Y[15:0] 、低10位有效、高6位0

    如果这不是您获得输出的方式、则未启用提取模块或输入不是10位 MIPI 格式。 您能否共享 CAL 寄存器进行检查? 我对寄存器 CAL_PI_PROC_I 感兴趣(0x5201 20C0 +(0x4 * I))。

    这是我们启用像素提取模块的位置。

    此致、

    Brijesh

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

    您好、Brijesh、

    这是我们捕获视频帧时 CAL_PI_PROC_I 的寄存器转储。

    我认为提取模块已启用、并在10位 MIPI (0x4)中提取、在16位(0x5)中打包。

    此致、

    James

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

    从寄存器中、

    像素处理上下文0 = 1
    CPortID = 1
    打包= 16位
    提取位[4:1]= 16位(小端字节序)=旁路

    看起来 MIPI 10位没有启用提取。 您能否尝试更改此寄存器?

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

    您好、Brijesh、

    将提取更改为10位 MIPI (提取位[4:1]= 0x4)后、得到了如下的帧转储:

    它似乎是一个8位容器(而不是16位)?

    字节0:0x0F -> U

    字节1:0x02 -> Y

    字节2:0xD1 -> V

    字节3:0x01 -> Y

    并且仍然无法正确显示图像。

    有什么想法吗?

    此致、

    James

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

    这看起来像是一个16位容器。 我相信源是10位、正如您看到的、数据字节偶数和字节奇数剂量不超过10位。
    要确认是否正确接收视频、请在 PC YUV 查看器中查看转储的图像。

    问题是我们无法显示10位 YUV。 您必须将10 b 转换为8位。

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

    尊敬的 James:

    捕获数据看起来是正确的。 每个奇数字节值不超过0x3、因此看起来它在16位容器中捕获10位数据。 但您如何查看它呢? 我认为没有人可以查看该10位 YUV422数据。 此外、Display 支持8位 YUV 数据、无法显示此格式。 您需要将其转换为8位以显示该帧。

    要确认接收到的数据是否正确、您能否在传感器中启用一些内部测试模式并检查接收到的数据? 如果匹配、CAL 能够正确接收数据。  

    Rgds、

    Brijesh

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

    那么、这是否意味着我们的显示子系统的限制- CAL 可以正确接收10位 YUV422流、但无法显示它?
    我找不到 PC 查看器来正确显示这种格式。 那么、我们使用10位 YUV422格式的原因是什么?

    您能否告诉我如何在 VisionSDK 中将其转换为8位(任何参考代码或用例)?
    这是否意味着我们将通过将10位数据转换为8位来牺牲图像质量?

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

    请提供图片、我可以进行检查。 8位是 DSS 的限制。
    目前没有 ALGO 可用于此转换、让我检查一下我们是否有任何基于 DSP/EVE 的内核用于此转换。

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

    图像通过单独的邮件发送。

    如果这是 DSS 本身的限制、您知道我们找不到 PC 工具来显示10位 YUV422图像的原因吗?
    是因为10位 YUV422不是常用格式吗?

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

    我将您的图像转换为8位并进行了检查。 它看起来很好、可能稍微偏离焦点、宽度为960而不是1920。 那么、您能否检查您的传感器配置? 如果它被正确配置为1920宽度、请检查 CAL WRITE DMA 配置以查看宽度是否正确设置。

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

    您好、Brijesh、

    我将检查 宽度设置并告知您。

    同时、您能否回答我之前的问题-我们能否在 VisionSDK 中将这种10位格式转换为8位格式?

    尽管我们可以将其转换为 8位、但它会导致图像质量下降、如果是这种情况、我们没有使用10位格式的有效理由。

    此致、

    James

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

    它实际上取决于您的用例。 您会获得可在 EVE/DSP 上处理的10位 YUV 数据。 由于位深度较高、因此算法可能会获得更好的结果。 但是、在进入显示屏之前、我们需要转换为8位、因为每个组件仅支持8位。

    据我所知、VSDK 不支持任何将10位转换为8位的算法。

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

    让我们知道我们是否可以关闭这个线程。

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

    您好、Brijesh、

    由于没有明确要求10位 YUV、我们决定移动到8位。

    让我们关闭线程。

    感谢你的帮助。

    此致、

    James

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