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.

[参考译文] 在目标平台上使用调优工具输出的问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1528155/problem-of-using-tuning-tool-output-on-the-target-platform

器件型号:PROCESSOR-SDK-J721S2

工具/软件:

您好:

我们正在为我自己的传感器调优 ISP (SDK 09_01_00_22)。

使用 APP_SINGLE_cam 软件、我们可以捕捉原始图像和 YUV 图像、但白平衡存在问题。 因此、采取了以下步骤:

  1. 我按照 DCC 中的 AWB 插件指南对摄像头执行白平衡校准并生成 mycamera_awb_alg_ti3_tuning.xml 文件。 并将其放入 ti-processor-sdk-rtos-j721s2-evm-09_01_00_06/imaging/sensor_drv/mycamera/dcc_xmls 中 src

  2. 使用 generate_dcc.sh 来生成 dcc_2a_mycamera.h 文件。

  3. 在 app_iss_common.c 文件中添加了我的摄像机的配置(在函数和中)appIssGetDCCSize2AappIssGetDCCBuff2A、运行 make imaging_crub & make vision_apps_scrub、然后执行 imaging&make vision_apps
    但白平衡仍然不正确。

我打印出 DCCSize2A,发现 大小与 DCC_2a_imx390 相同,而不是我的预期值 (25587 )。“传感器名称: mycamera,大小: 22321,SENSOR_WDR_MODE:0。 “

 

 dcc_buff_size_driver = appIssGetDCCSize2A(obj->sensor_name, sensor_wdr_mode);
 printf("sensor name : %s,size : %d,sensor_wdr_mode:%u\n",obj->sensor_name,dcc_buff_size_driver,sensor_wdr_mode);

即使在我强行修改大小和缓冲区以匹配我自己的设置后,白平衡仍然不正确。

//dcc_buff_size_driver = appIssGetDCCSize2A(obj->sensor_name, sensor_wdr_mode);
dcc_buff_size_driver = DCC_2A_mycamera_DCC_CFG_NUM_ELEM;
    
//status = appIssGetDCCBuff2A(obj->sensor_name, sensor_wdr_mode,  dcc_2a_buf, dcc_buff_size_driver);
memcpy(dcc_2a_buf, dcc_2a_mycamera_linear, dcc_buff_size_driver);

我在以下三种条件下保存了原始图像和 YUV 图像:

1.dcc_buff_size_driver =–1

2.dcc_buff_size_driver = appIssGetDCCSize2A (obj->sensor_name、SENSOR_WDR_MODE);
status = appIssGetDCCBuff2A (obj->sensor_name、SENSOR_WDR_MODE、dcc_2a_buf、dcc_buff_size_driver);  

3.dcc_buff_size_driver = dcc_2A_mycamer_DCC_CFG_NUM_Elem;
memcpy (dcc_2a_buf、dcc_2a_mycamera_linear、dcc_buff_size_driver);  

e2e.ti.com/.../RAW_5F00_YUV_5F00_IMG.zip

顺便说一下、在函数 appDccUpdatefromFS 中、case 块中是否缺少 break 语句?

int32_t appDccUpdatefromFS(char* sensor_name, uint8_t wdr_mode,
                        vx_node node_viss, uint32_t viss_node_index,
                        vx_node node_aewb, uint32_t aewb_node_index,
                        vx_node node_ldc, uint32_t ldc_node_index,
                        vx_context context)
{
    char dcc_dir_path[MAX_FOLDER_NAME_LEN];
     char op_mode[8];
    int dcc_num_bytes;
    int dcc_bytes_read;
    uint8_t * dcc_buf;
    switch(wdr_mode)
    {
        case 0:
            /*Linear mode*/
            snprintf(op_mode, 8, "%s", "linear");
        default:
            /*WDR mode*/
            snprintf(op_mode, 8, "%s", "wdr");
    }