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-AM62A-LP:在 ISP 中添加了新的传感器支持

Guru**** 2469540 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1443485/sk-am62a-lp-add-new-sensor-support-in-isp

器件型号:SK-AM62A-LP

工具与软件:

您好!

我们使用 ar0235 onsemi 传感器、因为我们能够成功传输视频流。 但我们想在的 ISP 中添加支持 gsttiovxisp.c 脉冲配置文件。

在 gsttiovxisp.c 文件中"gst_tiovx_isp_map_2A_values"函数根据现有的支持传感器计算 exposition_time_mapped 和 analog_gain_mapped。
我们想要添加 基于 ar0235传感器的自动曝光模式的曝光和增益计算。

文件路径:../aArch64-OE-Linux/edgeai-gst-plugins/AUTOINC+92557180c3-r0_edgeai_0/git/ext/tiovx/gsttiovxisp.c

您能否为我提供指导或提供有关如何计算 ISP 中自动曝光模式的曝光和增益的任何文档。

传感器支持:

分辨率1920x1200
曝光范围:最小值=0最大值=420000
analog_gain:最小值=0最大值=48
FPS:30和60

谢谢!
Jaimin

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

    尊敬的 Jaimin:

    请参阅 AM6xA ISP 调优指南的 5.4.2添加2A 算法的曝光设置章节。  

    此致、

    建中

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

    谢谢建中。

    我们正在验证 ISP 的自动和手动曝光以及在 DCC 成像 工具中验证的曝光和增益值。
    我们没有在 DCC 工具中观察增益和曝光的变化、而是使用 AR0235单色传感器。

    我们已根据 AM6x ISP 调优指南添加了传感器支持。

    什么原因将不会在工具中得到更改? 我们正在使用单色传感器。
     

    另外、您能向我们进一步介绍一下 DCC 工具如何找出传感器的曝光和增益吗?

    此致、

    Jaimin

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

    尊敬的 Jaimin:

    请确保 在启用实时调优的情况下重建 edgeai-tiovx-modules、如第9章实时调优中所述。 完成此操作后、DCC 实时调优工具可以通过远程服务函数 https://git.ti.com/cgit/processor-sdk/imaging/tree/itt_server_remote/DCC/itT_Srvr_remote.c?h=main#n71、将曝光参数和白平衡参数与成像库交换 src。  

    此致、

    建中

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

    您好、建中:

    我们已添加了基于调优指南的支持。 其中、通过 ISP 自动曝光、我们可以在 DCC 工具中获得曝光和增益值、但我们无法获得准确的值。 值有波动。
    我们是具有不同光条件的调谐传感器。

    我们已在 ext/tiovx/gsttiovxisp.c 文件中添加以下代码

    static int32_t
    get_ar0235_ae_dyn_params (IssAeDynamicParams * p_ae_dynPrms)
    {
      int32_t status = -1;
      uint8_t count = 0;
    
      g_return_val_if_fail (p_ae_dynPrms, status);
    
      p_ae_dynPrms->targetBrightnessRange.min = 40;
      p_ae_dynPrms->targetBrightnessRange.max = 50;
      p_ae_dynPrms->targetBrightness = 45;
      p_ae_dynPrms->threshold = 1;
      p_ae_dynPrms->enableBlc = 1;
      p_ae_dynPrms->exposureTimeStepSize = 1;
    
      p_ae_dynPrms->exposureTimeRange[count].min = 100;
      p_ae_dynPrms->exposureTimeRange[count].max = 420000;
      p_ae_dynPrms->analogGainRange[count].min = 1024;
      p_ae_dynPrms->analogGainRange[count].max = 8192;
      p_ae_dynPrms->digitalGainRange[count].min = 256;
      p_ae_dynPrms->digitalGainRange[count].max = 256;
      count++;
    
      p_ae_dynPrms->numAeDynParams = count;
      status = 0;
      return status;
    }
    
    
    
    static void
    gst_tiovx_isp_map_2A_values (GstTIOVXISP * self, int exposure_time,
        int analog_gain, gint32 * exposure_time_mapped, gint32 * analog_gain_mapped)
    {
    	else if (g_strcmp0 (self->sensor_name, "ONSEMI_AR0235") == 0) 
    	{
        double multiplier = 0;
        *exposure_time_mapped = (exposure_time * 1671 * 60 / 1000000);
        //*analog_gain_mapped = analog_gain / 64;
        multiplier = analog_gain / 1024.0;
        *analog_gain_mapped = 256.0 - 256.0 / multiplier;
    }
     
     

    如果我们出错了,您能在计算中提供帮助吗?

    谢谢!
    Jaimin

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

    尊敬的 Jaimin:

    最长曝光时间看起来不正确:

    p_ae_dynPrms->expsureTimeRange[count].max = 420000;

    这是420ms。 通常、最长曝光时间是帧持续时间。 您的帧速率是多少?

    此致、

    建中

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

    尊敬的建中:

    我来自 Jaimin 的团队。

    您的帧速率是多少?

    传感器的最大帧率为120fps。 但我们将使用60fps 的传感器。

    此致、

    Jay

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

    您好、Jay:

    如果您使用的是60fps、则 expsureTimeRange[count].max 不应超过16666 (微秒)。

    此致、

    建中

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

    尊敬的建中:

    感谢您的答复。

    我明白了你的观点。 曝光时间应为(1000ms/fps)。 在进行此更改之后、我们获得了实际的增益和曝光值、但在相同的照明条件下、增益和曝光值会发生变化。 而对于 IMX219传感器、在相同的照明条件下、增益和曝光保持不变。  

    请查看下面随附的传感器视频、了解相同光照条件下 DCC 工具中刷新时的增益和曝光变化。 如何在相同光照条件下获得稳定增益和曝光。

    e2e.ti.com/.../DCC_2D00_Tool_2D00_Exposure_2D00_Gain.zip

    此致、  

    Jay

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

    您好、Jay:

    观察到曝光和增益的变化时、图像亮度是否看起来稳定?

    您是否知道传感器应用曝光和增益需要多少帧、例如是2帧、3帧等?

    此致、

    建中

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

    尊敬的 Jaimin:

    您确定下面的映射是否适用于您的 AR0235传感器驱动程序吗?

        *exposure_time_mapped = (exposure_time * 1671 * 60 / 1000000);
        //*analog_gain_mapped = analog_gain / 64;
        multiplier = analog_gain / 1024.0;
        *analog_gain_mapped = 256.0 - 256.0 / multiplier;

    如果在传感器中对曝光时间和增益未进行正确编程、AE 将不会收敛。

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

    尊敬的 建中&刚:

    当您观察到曝光和增益发生变化时、图像亮度看起来是否稳定?

    不能、图像亮度在串流中看起来并不稳定。

    您确定下列映射是否适用于您的 AR0235传感器驱动程序?

    我想这是错的。 然后、我们将此曝光时间更改为如下形式(60fps)。

        *exposure_time_mapped = (1200 * exposure_time / 16);
    
        multiplier = analog_gain / 1024.0;
        *analog_gain_mapped = 256.0 - 256.0 / multiplier;

    此致、

    Jay

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

    您好、Jay:

    传感器寄存器信息可能遵循 NDA (我没有提供)、我们无法公开讨论。

    请查看 AR0235数据表、以了解我们中的曝光时间和 Q10整数中的增益映射是否正确映射到传感器寄存器值。

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

    尊敬的刚华:  

     

    如何得出中的值256  gst_tiovx_isp_map_2a_values ()  用于中的 imx219传感器  EXT/tiovx/gsttiovxisp.c 用于模拟增益计算的头文件 .  我想为我们的摄像头传感器推导这个常数值。

    此致、

    Jay

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

    您好、Jay:

     增益映射公式 基于 IMX219传感器数据表。

    此致、

    建中

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

    您好、 建中:

    64值对所有传感器都是通用的、还是对每个传感器都不同?

    由于每个传感器都有不同的 s Nx 增益和 Mx 增益值、其中 N 是最小值、M 是最大值。 基于该值、我们在下面添加了数据 "ext/tiovx/gsttiovxisp.c" 定制传感器的配置文件。 以下逻辑 是否正确? 请为您提供输入。

    p_ae_dynPrms->analogGainRange[count].min = NX * 1024;

    p_ae_dynPrms->analogGainRange[count].max = MX * 1024;  

    2A 算法可返回该增益。 我们如何设置传感器中的增益值? 如何映射 "模拟增益映射" 和2A 算法增益值之间的差异? 我们如何 使用转换该值并将该转换后的值写入传感器中 "ioctl"

    对于 TI 文档中提到的该转换、64值作为分频器、用于将2A 算法模拟增益值转换为传感器增益值。 但我们的问题是、64值对于所有传感器都是通用的? 如果不是这样、如果在这种情况下它特定于传感器、我们如何为传感器特定推导该值?

    请尽快提供您对以上问题的意见。

    谢谢!

    Nisarg

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

    尊敬的 Nisarg:

    [报价 userid="598515" url="~/support/processors-group/processors/f/processors-forum/1443485/sk-am62a-lp-add-new-sensor-support-in-isp/5639692 #5639692"]

    64值对所有传感器都是通用的、还是对每个传感器都不同?

    [报价]

    这取决于传感器和传感器驱动程序。

    因为每个传感器都有不同的 s NX 增益值和 Mx 增益值、其中 N 是最小值、M 是最大值。 基于该值、我们在下面添加了数据 "ext/tiovx/gsttiovxisp.c" 定制传感器的配置文件。 以下逻辑正确 或不正确?

    这是 AE 决定在传感器上使用一定范围的可用增益。
    这通常不是完整的可用范围。

    2A 算法返回增益。 如何设置传感器中的增益值?[/QUOT]

    通常、传感器驱动程序具有一个接口 ioctl、用于更改传感器曝光和增益值。

    AE 输出增益必须首先转换为 ioctl 的正确编码、然后调用 ioctl 将其发送到传感器。

    [报价 userid="598515" url="~/support/processors-group/processors/f/processors-forum/1443485/sk-am62a-lp-add-new-sensor-support-in-isp/5639692 #5639692"]对于 TI 文档中针对该转换提到的64值作为分频器、用于将2A 算法模拟增益值转换为传感器增益值。 但我们的问题是、64值对于所有传感器都是通用的? [报价]

    否、这并不常见。

    如果不是这样、如果是特定于传感器的情况、我们如何推导该特定于传感器的值?

    您必须检查传感器接口 ioctl 以了解其对传感器增益的编码方式、然后您可以将2A 增益映射到 ioctl 增益格式。

    [/quote]