(1)暗电流
物理器件不可能是理想的, 由于杂质、 受热等其他原因的影响, 即使没有光照射到像素,像素单元也会产生电荷, 这些电荷产生了暗电流。 而且, 暗电流与光照产生的电荷很难进行区分。
(2)Black Level
用来定义图像数据为0时对应的信号电平。
(1)LSC, Lens Shading Correction,镜头阴影矫正
(2)镜头物理原因和入射光夹角原因,导致一帧内中心点像素的亮度值到边缘处逐渐减弱
(3)镜头阴影 是 摄像头系统本身引入的问题,所以需要ISP算法进行矫正
(4)矫正说明,参考学习:https://blog.csdn.net/xiaoyouck/article/details/77206505
(1)DPC, defect pixel correction(有时也写为:bad point correction,BPC)
静态坏点:
亮点:一般来说像素点的亮度值是正比于入射光的,而亮点的亮度值明显大于入射光乘以
相应比例,并且随着曝光时间的增加,该点的亮度会显著增加;
暗点:无论在什么入射光下,该点的值接近于0;
动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要
亮。与sensor 温度、增益有关,sensor 温度升高或者gain 值增大时,动态坏点会变的更
加明显。
参考学习:https://blog.csdn.net/xiaoyouck/article/details/73134846
(1)AE, auto exposure
(2)曝光时间:sensor 积累电荷的时间,是 sensor pixel 从开始曝光到电量被读出的这段时间。
(3)曝光增益:对 sensor 的输出电荷的总的放大系数,一般有数字增益(dgain)和模拟增益(again),模拟增益引入的噪声会稍小,所以一般优先用模拟增益。
(1)DRC:Dynamic Range Compression
即动态范围压缩,目的是调整图像的动态范围(与曝光有关的亮度范围),使得图像显示出更多的信息。 DRC 模块是一个基于人眼视觉系统特性的高级局部色阶映射(多空间动态范围压缩)引擎,是sensor的一个功能
开启后,会提升暗处细节,同时也提升噪声,导致噪声强度相比DRC关闭时更大些,此时边缘增强,去噪功能都应该与DRC有关
BLC:backlight compensation,背景光补偿
WDR,全称Wide Dynamic Range,即宽动态范围。宽动态就是场景中特别亮的部位和特别暗的部位同时都能看得特别清楚。宽动态范围是图像能分辨最亮的亮度信号值与能分辨的最暗的亮光信号值的比值。
(2)WDR和DRC区别:
DRC开启后主要是提升暗处细节同时也提升噪声,所以在暗光下要考虑如何去掉噪点;而WDR是局部亮局部暗的情况下都能完美曝光显示
(3)WDR和BLC的效果对比,参考:
https://blog.csdn.net/tr_ainiyangyang/article/details/82388559
(1)noise reduction/denoise
参考学习:https://blog.csdn.net/qq_40618816/article/details/105660202
(1)Demosaic, 去马赛克,由Bayer图像到RGB图像的过程
(2)参考:https://blog.csdn.net/helimin12345/article/details/81674590
(1)WB:white balance,白平衡
参考学习:https://zhuanlan.zhihu.com/p/56562780
(2)AWB:automatic white balance,自动白平衡
(1)color correction
(2)CCM, color correction matrix
(3)sensor 对光谱的响应,在RGB 各分量上与人眼对光谱的响应通常是有偏差的,需要通过一个色彩校正矩阵CCM(Color Correction Matrix)校正光谱响应的交叉效应和响应强度,使前端捕获的图片与人眼视觉在色彩上保持一致。实际上矫正过程就是个矩阵运算过程。
(4)颜色矫正能提升图像饱和度,饱和度也称色彩的纯度。取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。
(1)gamma correction
(2)参考:https://blog.csdn.net/chenjuan0530/article/details/78970791
(1)AGC:automatic gain control,自动增益控制
(2)使用算法自动调节增益系数,使输入值变化很大时输出值基本保持线性不变
(1)CSC(Color Space Conversion)颜色空间转换,一般是将sRGB空间转换到YUV。
(2)LUT(Look-Up Table)查找表技术,可以在两组数据之间建立对应关系。可以用于颜色空间转换、CCM等
(1)CA (Chroma Adjustment)色度调整,在亮度不变的情况下,调整色度。如YUV,对UV进行处理(Y表示亮度)。
(2)CAC (Chromatic Aberration Correction)由于不同颜色的光在通过镜头时以不同的速度传播,镜头对于所有波长的光不能聚集于一点而引起的“紫边”现象。
(1)Sharpen,使图像的边缘部分变清晰
(2)图像锐化的实质:锐化后图像=原图像+加重的边缘
PCR (Preferred Color Reproduction)大部分情况图像是给人看的,不同的人有不同的颜色喜好,根据用户爱好改变色调空间,称为喜好色。也称为感知色。
IE(Image Enhancement)增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。图像增强涉及许多操作,如降噪,边缘增强,对比度增强。因此,图像增强可以不顾增强后的图像是否失真,只要看着舒服就行。
(1)参考手册:图像质量调试工具使用指南.pdf(documents_cn文件夹中)
开发板要使用的程序:Hi3518E_PQ_V1.0.3.0.tgz,解压后将以下文件部署到开发板运行,可复制到挂载目录,执行HiIspTool.sh
电脑端使用的程序:PQTools_V4.4.9.zip,解压打开,免安装直接使用。
All Read:读取开发板默认设置好的参数值,在该软件界面更改了某个参数值,可通过All Write写入到硬件,观察到实时的效果,不过是写入内存,下次开机重启又是原来的值。
注:上述使用的工具以及文档都在海思sdk中,之前的文章中已经提供过链接,这里不再赘述
(1)确认编译过的SDK,编译运行测试好的sample
(2)串口终端和telnet双登录以便两边同时运行程序(一边运行HiIspTool.sh,一边运行sample)
(3)Windows IP设置好,防火墙关闭
(1)读取寄存器值
(2)实时更改gamma看效果
(3)实时更改sharpen看效果
更多使用细节,请参考《图像质量调试工具使用指南.pdf》,
(1)gamma
(2)sharpen
HI_VOID GammaInitLin(HI_VOID)函数内。
(1)PQTool工具读取gamma参数,存成txt文件,和源码中写死的值对比,看是否相同。
(2)PQTool中更改gamma参数,保存效果截图,保存新参数到一个txt文件
(3)将参数txt文件更改格式后备用(变成源码中的格式),可通过C程序实现:
#include
#include
int main(int argc, char**argv)
{
FILE * pF = NULL;
char *pBuf = NULL;
size_t len = 0, i = 0, j = 0;
if (argc != 3)
{
printf("usage: %s srcfilename dstfilename\r\n", argv[0]);
return -1;
}
pBuf = (char *)malloc(10 * 1024); // 申请10k个字节做缓存区
if (NULL == pBuf)
{
printf("malloc error.\r\n");
return -1;
}
pF = fopen(argv[1], "r");
if (NULL == pF)
{
printf("fopen %s error.\r\n", argv[1]);
return -1;
}
len = fread(pBuf, sizeof(char), 10*1024, pF);
fclose(pF);
for (i=0, j=0; i<len;)
{
switch (pBuf[i])
{
case '\r':
pBuf[j] = ','; i++; j++;
break;
case '\n':
i++;
break;
default:
pBuf[j] = pBuf[i]; i++; j++;
break;
}
}
pF = fopen(argv[2], "w+");
if (NULL == pF)
{
printf("fopen %s error.\r\n", argv[2]);
return -1;
}
fwrite(pBuf, sizeof(char), j, pF);
free(pBuf);
fclose(pF);
return 0;
}
(4)在isp源码中更改新参数,并且重新编译整个isp,会自动更新mpp目录下的库文件
(5)重新部署新生成的ko文件到开发板,重启开发板
(6)重新编译sample,在开发板中运行看效果,和之前的截图对比
注:本文章参考了《朱老师物联网大讲堂》课程笔记,并结合了自己的实际开发经历以及网上他人的技术文章,综合整理得到。如有侵权,联系删除!水平有限,欢迎各位在评论区交流。