liwen01 20220821
《Ingenic_Zeratul_T31_快起效果调试说明_20200927_CN》
IPC 每次启动都是冷启动,画面有一个暗变亮的过程,称作为AE收敛过程(自动曝光收敛过程)。
为了加快AE收敛的整个过程,可以设置一个起始EV值,也就是开始曝光参数,AE曝光从这个值开始收敛,可以缩短整个AE收敛的过程。
实际是通过光敏ADC值与曝光参数EV值建立一个关系表,启动的时候,软件根据ADC值去查找对应的EV值进行曝光设置。
启动过程中存在一个问题:
💡刚上电启动的时候光敏ADC不稳定
ev值与adc表采集需要分两种方式:
根据官方的说明,君正系列,在T20系列,可以直接使用应用层软件直接采adc值与稳定的ev值
但是在T30,T31芯片上,因为启动的时候ADC其实还未稳定,所以只能是采集启动时boot的adc值,与内核打印中稳定的ev值相互对应,不然会出现不准确的现象




上面第一张图像明显的过曝,第2张到第4张也是存在一个收敛的过程(由曝光不足到曝光正常)
出现这样的收敛过程,实际是不正常的,可能存在两个原因:
ISP 中丢的帧数不够
将boot的打印打开,同时将kernel的 isp 快启调试数据打开
尝试不同帧数的丢,直到可以正常曝光为止
实际快启的时候,发现图片没有缓存,对时间秒表进行拍照,发现拍360图片的时间比主码流的时间还早
//tools/make_tag/sensor_start_ae_table/libz_gc2093.c
#include "libz_common.h"
int g_gpio_led_mode = LED_MODE_LOW_ON;
int g_gpio_led = GPIO_PB(31);
int g_gpio_ircut_mode = IRCUT_MODE_IGNORE;
int g_gpio_ircut_p = GPIO_PB(18);
int g_gpio_ircut_n = GPIO_PB(17);
int g_gpio_ircut_edge = 0;
int g_adc_value = 3000;
int g_adc_direction = ADC_DIRECTION_1;
int g_adc_reference = -1;
int g_gpio_white_led = -1;
int g_gpio_white_led_status = -1;
struct vol_start_value_table table_day[] = {
{302,4},
{319,5},
{341,6},
{360,8},
{380,9},
{402,10},
{499,13},
{602,14},
{718,14},
{802,15},
{854,17},
{908,24},
{1002,96},
{1050,242},
{1102,706},
{1176,2616},
{1205,3553},
{1305,6799},
{1405,8325},
{1517,10479},
{1604,12626},
{1704,14484},
{1840,19098},
{1975,24062},
{2004,24742},
{2030,26612},
{2056,21423},
{2097,24041},
{2110,29908},
{2178,36098},
{2294,36675},
{2774,53740},
{2813,54801},
{2819,57503},
{2835,57165},
{2864,58467},
{2945,61555},
{3009,131359},
{3080,142020},
{3087,145011},
{3093,142503},
{3129,160014},
{3132,161172},
{3142,159098},
{3296,161220},
};