讨论广场 问答详情
p7885 camera配置
weixin_42358198 2025-08-28 10:26:25
179 评论 分享

求教一下laval\device\platform\soc\common\camera\src\ispalg\ae\sprd\ae4.x\adpt\src\ae_sprd_adpt_v4.c文件里exp_line 661,dummy 1590两个参数是从tuning文件里读出来的吗,我看ae_read_exp_gain_param接口会尝试读取一些配置文件,但是目前系统里这些配置文件都没有,所以现在下面这些参数,是从哪里读取的?默认是从tuning文件里读取吗?修改帧率的时候,这些参数应该也会变化,这里是怎么跟帧率匹配上的?


src_exp.exp_time = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].exp_time;
src_exp.gain = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].gain;
src_exp.dummy = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].dummy;
src_exp.cur_index = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].cur_index;
src_exp.target_offset = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].target_offset;
src_exp.frm_len = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].frm_len;
src_exp.frm_len_def = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].frm_len_def;
src_exp.target_luma = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].target_luma;
src_exp.face_auto_offset = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].face_auto_offset;
cxt->sync_cur_result.cur_bv = cxt->cur_result.cur_bv = s_bakup_exp_param[cxt->camera_id][cxt->sensor_mode].bv;
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3604] ptr <private>, size 144556
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3434]******************AE ctrl param dump start**************
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3436]ver:ver 16384 ver_id -1414812757
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3439]ctrl_setting: 2048 128 4 1 1 1 0 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3442]flash_control_param: 2 2 3 1 5 6 0 6
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3443]auto_flash_ctrl:thrd_up 300 thrd_down 285 
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3444]video_fps_ctrl:thrd_up 0 thrd_down -500 
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3445]lowlight_ctrl:thrd_up 500 thrd_down 480 
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3446]bining_lowlight_ctrl:thrd_up 500 thrd_down 450 
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3451]aem_cfg_param: 0 64 64 0 0 0 0 1000 20 1000 20 1000 20
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 0,cvg bv 100,cvg exp 2000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 1,cvg bv 300,cvg exp 2000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 2,cvg bv 500,cvg exp 10000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 3,cvg bv 800,cvg exp 10000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 4,cvg bv 1000,cvg exp 4000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 5,cvg bv 0,cvg exp 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 6,cvg bv 0,cvg exp 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3454]fast_ae_af_param:i 7,cvg bv 0,cvg exp 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 0,eis_en 0,set_num:1 eis_thr 2 sample_num 5
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 1,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 2,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 3,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 4,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 5,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 6,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3460]eis_param:i 7,eis_en 0,set_num:1 eis_thr 0 sample_num 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3467]eis_param:j 0 bv 100 exp 2000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3467]eis_param:j 1 bv 300 exp 2000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3467]eis_param:j 2 bv 500 exp 10000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3467]eis_param:j 3 bv 800 exp 10000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3467]eis_param:j 4 bv 1000 exp 4000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_dump_turning_param] [3470]******************AE ctrl param dump end**************
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3640] ct[0]:<private>
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_high_fps_range] [3280]fps 30
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ispalg_set_aem_win] [2627]win 0 56 60 32 64 64
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ispalg_set_aem_thrd] [2671]aem_threshold, rgb high(250 250 250)  rgb low(5 5 5)
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_cfg_monitor_block] [1669]rtn=0 win_num(<private>x64), win_size(<private>x32) skip=0 mode=1
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_bayer_hist] [1685]ae_set_bayer_hist, cameraId:0, start_x:0, start_y:0, end_x:3840, end_y:2160
01-01 22:14:59.951   700  1017 D C057c1/ProcessSkeleton: AttachInvokerProcInfo 287: 2636721280, 684 684 3033 671091938 0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_get_table_param] [2348]ae_table : cur_flicker 0, index:[0, 339], gain: [128, 8192], exp: [59240, 30000000], def: [20000000,236]
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_get_table_param] [2349]ae table <private> weight table <private>
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3860]file expl=661, gain=128
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3879]last_target=52
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_adjust_exp_gain_by_fps] [1285]max:src <private>, dst <private>, max index: 339
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_adjust_exp_gain_by_fps] [1300]CUR_FPS <private>, dummy 1590
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_adjust_exp_gain_by_fps] [1387]fps:[<private>,<private>],tmp_frame_len 2251,frame_len 2250,exp_line 661,dummy 1590
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_adjust_exp_gain_by_fps] [1406]fps: 30, 30,max exp l: 2026 src: 661, 1590, 128, dst:661, 1590, 128
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3913]manual_exptime <private>, gain 0, appmode 0, aemode 1
01-01 22:14:59.951   700  1017 I C02700/PrintSensorData: in PrintHdiData, SensorData: sensorId: 5, timestamp: 0.000000, 180.000015, 0.000000, 0.000000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3940]long_shutter_support 0 long shutter thrd 30000000
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3958]before:exp_line:661  exp_time: <private> gain:128 dummy 1590 frm_len 2251
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_make_calc_result] [2729]AE_DEBUG CUR_BV = 1019, cxt->zsl_flag = 1, is_snapshot = 0,last enable  = 0,
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_set_video_start] [3981]ae_set_video_start, ae_update_result_to_sensor,sensor_role:0
01-01 22:14:59.951   688  3113 D C03200/MY_TAG: [MY_TAG][ae_update_result_to_sensor] [1112]-----ae_update_result_to_sensor start----, cameraId:0

 

179 评论 分享
写回答
全部评论(5)

当帧率变化时,AE 算法会重新计算 dummy,确保 exp_line 满足曝光需求,同时调整 Frame Length 以匹配目标帧率。

2025-08-28 20:11:52
2025-09-02 10:18:42
引用:“驱动接口是有的 ,会根据dummy和exp_line来重新计算frame_len和shutter,我试过在驱动里强制给这两个数据赋值,是可以得到想要的帧率的,目前传参的方式不行,ae_set_video_start计算的dummy和exp_line数据不对,导致传递给驱动的配置信息有问题,应该是需要重新校准,请问如果需要校准,是不是只能找展锐提供支持?还是camera厂家提供支持?”
展锐
2025-09-02 10:18:42
2025-09-01 18:07:59
引用:“帧率的计算通常由摄像头的硬件和驱动程序完成。在您的代码中,您已经通过setparm接口成功设置了20fps的帧率,并且在reqbufs中也看到了设置生效。但是,dummy和exp_line的计算可能涉及到摄像头的自动曝光控制(AE)算法,这通常由摄像头的传感器和相关的驱动程序完成。如果您在ae_read_exp_gain_param函数中没有找到相关文件,那么可能需要检查摄像头的AE算法是否正确实”
驱动接口是有的 ,会根据dummy和exp_line来重新计算frame_len和shutter,我试过在驱动里强制给这两个数据赋值,是可以得到想要的帧率的,目前传参的方式不行,ae_set_video_start计算的dummy和exp_line数据不对,导致传递给驱动的配置信息有问题,应该是需要重新校准,请问如果需要校准,是不是只能找展锐提供支持?还是camera厂家提供支持?
2025-09-01 18:07:59
2025-09-01 15:40:00
引用:“感谢回复,请问这个计算是哪边做的,我现在laval\device\platform\soc\common\camera\src\npi\v4l2camera\UnisocV4l2AdapterImpl.cpp文件里通过setparm接口正确设置了帧率20fps,reqbufs的时候也看到设置生效了,但是获取的dummy和exp_line并没有变化,计算出来还是30fps,发现ae_read_exp”
帧率的计算通常由摄像头的硬件和驱动程序完成。在您的代码中,您已经通过setparm接口成功设置了20fps的帧率,并且在reqbufs中也看到了设置生效。但是,dummy和exp_line的计算可能涉及到摄像头的自动曝光控制(AE)算法,这通常由摄像头的传感器和相关的驱动程序完成。如果您在ae_read_exp_gain_param函数中没有找到相关文件,那么可能需要检查摄像头的AE算法是否正确实现,或者是否需要重新校准AE参数。帧率变化时,dummy和exp_line的计算也会相应调整,以确保摄像头能够正确地以新的帧率进行预览和拍摄。
2025-09-01 15:40:00
2025-08-29 17:49:11
感谢回复,请问这个计算是哪边做的,我现在laval\device\platform\soc\common\camera\src\npi\v4l2camera\UnisocV4l2AdapterImpl.cpp文件里通过setparm接口正确设置了帧率20fps,reqbufs的时候也看到设置生效了,但是获取的dummy和exp_line并没有变化,计算出来还是30fps,发现ae_read_exp_gain_param函数里相关文件都没有,是不是需要/data/misc/media/ae.filecamera_0_ae.file这种文件,帧率变化的时候dummy和exp_line是怎么计算出来的
2025-08-29 17:49:11