• T31快启图像效果优化


    T31快启图像效果优化

    liwen01 20220821

    (一)基础方法及概念
    参考文档

    《Ingenic_Zeratul_T31_快起效果调试说明_20200927_CN》

    (1)起始EV参数

    IPC 每次启动都是冷启动,画面有一个暗变亮的过程,称作为AE收敛过程(自动曝光收敛过程)。

    为了加快AE收敛的整个过程,可以设置一个起始EV值,也就是开始曝光参数,AE曝光从这个值开始收敛,可以缩短整个AE收敛的过程。

    (2)起始EV值采集方法

    实际是通过光敏ADC值与曝光参数EV值建立一个关系表,启动的时候,软件根据ADC值去查找对应的EV值进行曝光设置。

    启动过程中存在一个问题:

    💡刚上电启动的时候光敏ADC不稳定
    ev值与adc表采集需要分两种方式:

    1. 应用层直接采集ADC与EV值的对应关系
    2. 在boot中采集ADC与程序启动后稳定的EV值对应的关系

    根据官方的说明,君正系列,在T20系列,可以直接使用应用层软件直接采adc值与稳定的ev值

    但是在T30,T31芯片上,因为启动的时候ADC其实还未稳定,所以只能是采集启动时boot的adc值,与内核打印中稳定的ev值相互对应,不然会出现不准确的现象

    (3)EV值相关
    1. 光线越强的时候,稳定的EV值就越小,实际测试到的值为4(gc2093)
    2. 光线越弱的时候,稳定的EV值就越大,测试到的最大值为16万多(gc2093)
    3. 判断EV值是否有效果
      • 在某个场景(adc 值基本稳定)
      • 手动调整不同的EV值,看实际的图片效果
    4. 可以在全黑的场景中测试到最大的EV值(比如用黑胶布封住光敏和镜头)
    5. 可以在太阳直射的场景中测试到最小EV值
    6. 不同的sensor,ev值的最值会不一样,与ADC的对应关系也是不一样

    (二)存在问题
    (1)问题一:第一张图像不正常,后续图像有个收敛的过程
    问题现象:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    上面第一张图像明显的过曝,第2张到第4张也是存在一个收敛的过程(由曝光不足到曝光正常)

    问题原因:
    1. 出现这样的收敛过程,实际是不正常的,可能存在两个原因:

      • ev 表有设置成功,但是实际没有生效
      • ev 表采集的不是很准确,出现一个重新收敛的过程
    2. ISP 中丢的帧数不够

      • 每款sensor 丢的帧数有差异,需要实际调试
      • 如果丢帧数量多,会导致启动速度变慢
    解决方案:
    1. 将boot的打印打开,同时将kernel的 isp 快启调试数据打开

      • 查看ev 值是否按boot查询到的ev值开始收敛
        • 如果是,则为原因二,用稳定的ev值重新调整看图像效果
        • 如果否,需排查为什么未生效
    2. 尝试不同帧数的丢,直到可以正常曝光为止


    (2)问题二:快启没有缓存图片
    问题现象:

    实际快启的时候,发现图片没有缓存,对时间秒表进行拍照,发现拍360图片的时间比主码流的时间还早

    问题原因:
    1. 因为使用的是gc2093 sensor,开启了WDR功能,使用riscv 后启动速度会非常慢,所以把riscv文件删除了
    2. 因为没有riscv,所以小核无法使用,无法快启缓存图片
    解决方案
    1. 君正的说法:如果开启了WDR,就没法使用riscv,wdr 是IQ那边处理的,目前没办法处理。

    注意事项
    1. 需要注意libz_gc2093.c中adc值的增长方向,IR,CUT切换等参数的配置要与实际板子相匹配
    2. 不同光照亮度下曝光值的采集,如果没有专业的调试显示屏,可以直接将设备放置在空旷的地方对着天空拍,采集24小时,那常用的亮度基本上就都有了。
    3. 君正并没有开放ISP相关的一些库,如果觉得库里面影响启动时间,可以尝试使用最新SDK中的库进行调试

    附件
    • 代码
    //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},
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
  • 相关阅读:
    Matplotlib设置限制制作
    锐捷AC开启SSH
    K Shortest Paths算法之Yen algorithm
    linux内核源码分析之物理内存
    内网渗透之Socks代理简介
    方块栈问题
    西安博物院重现1000年前唐三彩,竟然是3D打印!
    Day810.MySQL调优之事务:高并发场景下的数据库事务调优 -Java 性能调优实战
    (论文阅读24/100)Visual Tracking with Fully Convolutional Networks
    3D交互软件有哪些?哪个比较简单好学?
  • 原文地址:https://blog.csdn.net/li_wen01/article/details/127583362