wuhao

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao  发布于  2017-07-25 14:23:08
采纳率 0%
5个问答
8037

【已解决】AE Again Dgian IspGain最大值设置问题

 
本帖最后由 wuhao 于 2017-8-7 13:42 编辑

平台:hi3519v101v
调试:ISP-AE
问题:在晴天室内环境下(光线很好,不需要开灯~!),开发板上使用AE模块,设置的sensor gain 和isp 均跑到最大值。求大神帮忙看看AE是什么问题,谢谢。



具体见下面代码:
Again 调用cmos_again_calc_table()后值为22795

static HI_U32 again_table[490]=
{
    1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1049, 1051, 1053, 1055, 1057, 1059, 1061, 1063,
    1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1085, 1088, 1090, 1092, 1095, 1097, 1099, 1101, 1104, 1106, 1108,
    1111, 1113, 1116, 1118, 1120, 1123, 1125, 1128, 1130, 1132, 1135, 1137, 1140, 1142, 1145, 1147, 1150, 1152, 1155, 1157,
    1160, 1163, 1165, 1168, 1170, 1173, 1176, 1178, 1181, 1183, 1186, 1189, 1192, 1194, 1197, 1200, 1202, 1205, 1208, 1211,
    1214, 1216, 1219, 1222, 1225, 1228, 1231, 1234, 1237, 1239, 1242, 1245, 1248, 1251, 1254, 1257, 1260, 1263, 1266, 1269,
    1273, 1276, 1279, 1282, 1285, 1288, 1291, 1295, 1298, 1301, 1304, 1307, 1311, 1314, 1317, 1321, 1324, 1327, 1331, 1334,
    1337, 1341, 1344, 1348, 1351, 1355, 1358, 1362, 1365, 1369, 1372, 1376, 1380, 1383, 1387, 1391, 1394, 1398, 1402, 1406,
    1409, 1413, 1417, 1421, 1425, 1429, 1432, 1436, 1440, 1444, 1448, 1452, 1456, 1460, 1464, 1469, 1473, 1477, 1481, 1485,
    1489, 1494, 1498, 1502, 1507, 1511, 1515, 1520, 1524, 1529, 1533, 1538, 1542, 1547, 1551, 1556, 1560, 1565, 1570, 1574,
    1579, 1584, 1589, 1594, 1598, 1603, 1608, 1613, 1618, 1623, 1628, 1633, 1638, 1644, 1649, 1654, 1659, 1664, 1670, 1675,
    1680, 1686, 1691, 1697, 1702, 1708, 1713, 1719, 1725, 1730, 1736, 1742, 1748, 1753, 1759, 1765, 1771, 1777, 1783, 1789,
    1796, 1802, 1808, 1814, 1820, 1827, 1833, 1840, 1846, 1853, 1859, 1866, 1872, 1879, 1886, 1893, 1900, 1907, 1913, 1920,
    1928, 1935, 1942, 1949, 1956, 1964, 1971, 1978, 1986, 1993, 2001, 2009, 2016, 2024, 2032, 2040, 2048, 2056, 2064, 2072,
    2081, 2089, 2097, 2106, 2114, 2123, 2131, 2140, 2149, 2158, 2166, 2175, 2185, 2194, 2203, 2212, 2222, 2231, 2241, 2250,
    2260, 2270, 2280, 2289, 2300, 2310, 2320, 2330, 2341, 2351, 2362, 2372, 2383, 2394, 2405, 2416, 2427, 2439, 2450, 2461,
    2473, 2485, 2497, 2509, 2521, 2533, 2545, 2558, 2570, 2583, 2595, 2608, 2621, 2635, 2648, 2661, 2675, 2689, 2703, 2717,
    2731, 2745, 2759, 2774, 2789, 2804, 2819, 2834, 2849, 2865, 2881, 2897, 2913, 2929, 2945, 2962, 2979, 2996, 3013, 3031,
    3048, 3066, 3084, 3102, 3121, 3139, 3158, 3178, 3197, 3216, 3236, 3256, 3277, 3297, 3318, 3339, 3361, 3383, 3404, 3427,
    3449, 3472, 3495, 3519, 3542, 3567, 3591, 3616, 3641, 3666, 3692, 3718, 3745, 3772, 3799, 3827, 3855, 3884, 3913, 3942,
    3972, 4002, 4033, 4064, 4096, 4128, 4161, 4194, 4228, 4263, 4297, 4333, 4369, 4406, 4443, 4481, 4520, 4559, 4599, 4640,
    4681, 4723, 4766, 4810, 4855, 4900, 4946, 4993, 5041, 5090, 5140, 5191, 5243, 5296, 5350, 5405, 5461, 5519, 5578, 5638,
    5699, 5761, 5825, 5891, 5958, 6026, 6096, 6168, 6242, 6317, 6394, 6473, 6554, 6637, 6722, 6809, 6899, 6991, 7085, 7182,
    7282, 7384, 7490, 7598, 7710, 7825, 7944, 8066, 8192, 8322, 8456, 8595, 8738, 8886, 9039, 9198, 9362, 9533, 9709, 9892,
    10082, 10280, 10486, 10700, 10923, 11155, 11398, 11651, 11916, 12193, 12483, 12788, 13107, 13443, 13797, 14170, 14564,
    14980, 15420, 15888, 16384, 16913, 17476, 18079, 18725, 19418, 20165, 20972, 21845, 22795
};


static HI_VOID cmos_again_calc_table(ISP_DEV IspDev,HI_U32 *pu32AgainLin, HI_U32 *pu32AgainDb)
{
    int i,j;
    HI_U32 u32AgainLinTmp = 0;

    if((HI_NULL == pu32AgainLin) ||(HI_NULL == pu32AgainDb))
    {
        printf("null pointer when get ae sensor gain info  value!\n");
        return;
    }

    if(WDR_MODE_2To1_LINE == g_apstSnsState[IspDev]->enWDRMode)
    {
        j = 3;
        while((*pu32AgainLin >> j) <= again_table[489])
        {
            g_apstSnsState[IspDev]->u32DgainVal = j;
            if(j == 0)
            {
                break;
            }
            j--;
        }

        u32AgainLinTmp = *pu32AgainLin >> g_apstSnsState[IspDev]->u32DgainVal;
    }
    else
    {
        g_apstSnsState[IspDev]->u32DgainVal = 0;
        u32AgainLinTmp = *pu32AgainLin;
    }

    if (u32AgainLinTmp >= again_table[489])
    {
         u32AgainLinTmp = again_table[489];
         *pu32AgainDb = 489;
         goto calc_table_end;
    }
   
    for (i = 1; i < 490; i++)
    {
        if (u32AgainLinTmp < again_table)
        {
            u32AgainLinTmp = again_table[i - 1];
            *pu32AgainDb = i - 1;
            goto calc_table_end;;
        }
    }

calc_table_end:

    // downsample require
    *pu32AgainLin = u32AgainLinTmp << g_apstSnsState[IspDev]->u32DgainVal;
    *pu32AgainDb <<= 2;
   
    return;
}



Dgain 调用cmos_dgain_calc_table()后值为:65536
static HI_U32 dgain_table[7]=
{
    1024,2048,4096,8192,16384,32768,65536,
};

static HI_VOID cmos_dgain_calc_table(ISP_DEV IspDev,HI_U32 *pu32DgainLin, HI_U32 *pu32DgainDb)
{
    int i;

    if((HI_NULL == pu32DgainLin) ||(HI_NULL == pu32DgainDb))
    {
        printf("null pointer when get ae sensor gain info value!\n");
        return;
    }

    if (*pu32DgainLin >= dgain_table[6])
    {
         *pu32DgainLin = dgain_table[6];
         *pu32DgainDb = 6;
         return ;
    }
   
    for (i = 1; i < 7; i++)
    {
        if (*pu32DgainLin < dgain_table)
        {
            *pu32DgainLin = dgain_table[i - 1];
            *pu32DgainDb = i - 1;
            break;
        }
    }

    return;
}
我来回答
回答8个
时间排序
认可量排序

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao 2017-07-25 15:07:28
认可0
again_table[490]
dgain_table[7]如何获得?

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao 2017-07-26 11:57:03
认可0
怎么就沉海了呢:'(

Benz

0个粉丝

29

问答

0

专栏

0

资料

Benz 2017-07-26 14:45:08
认可0
AE还没有研究,你研究过AF没?

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao 2017-08-03 08:42:37
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=56193&ptid=18225]Benz 发表于 2017-7-26 14:45[/url]
AE还没有研究,你研究过AF没?[/quote]

一点点,主要是自己控制镜头。

Benz

0个粉丝

29

问答

0

专栏

0

资料

Benz 2017-08-12 18:37:13
认可0
本帖最后由 Benz 于 2017-8-12 18:39 编辑

楼主你的问题自己解决了啊?   我准备在3518a上开发AE:handshake 。 有问题可以交流

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao 2017-08-14 13:56:50
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=57413&ptid=18225]Benz 发表于 2017-8-12 18:37[/url]
楼主你的问题自己解决了啊?   我准备在3518a上开发AE 。 有问题可以交流[/quote]

我目前是计算的同时调用驱动去更新寄存器值。

clare

0个粉丝

0

问答

0

专栏

0

资料

clare 2017-12-08 17:23:04
认可0
:)                       

wuhao

0个粉丝

5

问答

0

专栏

0

资料

wuhao 2017-08-03 08:49:17
认可0
如何结贴?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区