8064
- 收藏
- 点赞
- 分享
- 举报
【已解决】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;
}
平台: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个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2017-07-24 18:02:09
-
2022-12-07 18:59:17
-
2020-07-13 22:09:27
-
2019-09-11 17:29:26
-
2016-04-18 17:28:35
-
2020-01-15 19:02:39
-
2016-09-21 20:42:52
-
2018-09-07 09:57:56
-
2018-09-12 10:31:43
-
2018-10-12 15:51:38
-
2016-10-27 14:54:53
-
2017-07-12 19:49:42
-
2015-01-15 10:30:55
-
2017-07-04 21:43:48
-
2016-06-16 15:27:51
-
2017-04-12 16:42:43
-
2016-07-22 18:53:10
-
2017-03-22 11:36:38
-
2018-06-25 22:00:13
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认