如今,市场上提到可以应用在智能车上的摄像头,多如牛毛。到底那一款最适合用在智能车上呢,这里DEMOK选取了2款典型的摄像头OV7670与OV7620,从其特性和性能等角度,剖析摄像头的特点,为大家揭开迷雾。
我们开门见山,先讲其最主要的不同点。我们都知道,OV7670和OV7620都是彩色摄像头,其感光像素为640*480的数字摄像头。他们之间有很多相似的参数,但是最大的不同就是,OV7670的像素输出格式为RGB565,而OV7620的像素输出格式为YUV422,这个不同点直接决定了其在智能车摄像头中的地位。在继续进行分析之前,我们先了解一点摄像头的小知识。
///---------------------------------------华丽丽的分割线-------------------------------------------///
【摄像头小知识】RGB565与YUV422的区别
1.什么是RGB565
众所周知,RGB是组成彩色的三基色,要想显示一个像素的颜色,每个像素都需要3个BYTE数据的R、G、B来表示,那一副320*240的彩色图像,就需要320*240*3=230400B=225KB的数据来存储,这样看来,存储图像的空间开销是极大的。而在一个像素RGB中,G分量的比重是最大的,R和B的比重相对小一些,因此人们又想出了用R:G:B=5:6:5的比例关系,来表示一个像素,这样一来,一个像素仅仅需要2个BYTE就可以表示其彩色信息(这个2个BYTE中,R占5bit,G占6bit,B占5bit),320*240的彩色图像的存储空间也由225KB减小到150KB。
2.RGB565是怎么存储的
摄像头的数据是在每一个PCLK的上升沿去读取的。若摄像头默认输出的格式为RGB565,那么摄像头在上电之后,每触发2个PCLK,读取2个字节,才是一个像素。在这个像素中,RGB的分布如下图所示:在第一个字节(First BYTE)中,Y[7..3]为R[4..0],Y[2..0]为G[5..3];在第二个字节(Second BYTE)中,Y[7..5]为G[2..0],Y[4..0]为B[4..0]
2.什么是YUV4:2:2
人的眼睛对低频信号比对高频信号具有更高的敏感度,事实上,人的眼睛对明视度的改变比对色彩的改变要敏感的多。因此,人们将RGB三色信号改为YUV来表示,其中Y为灰度,UV为色差。如果是表示一副彩色图像,同样的道理,YUV444是无损的存储方式,但是需要3个字节,存储空间开销很大。由于Y分量比UV分量重要的多,因此人们用YUV422来表示。这样一来图像被压缩了很多,一个字节就可以表示其彩色的信息。
//-----------------------------------------分割线完毕------------------------------------------------///
回归到OV7670和OV7620的对比中来。
刚才从小知识中,了解到OV7670是RGB输出,而OV7620是YUV输出,虽然理论上明白了,但是大家可能还不知道实际对应摄像头是怎么输出的。
对于OV7670,由于它只有一组并行的数据口Y[7:0],所有的像素数据都从这个数据口出,因此每次读取一次数据口,可以读一个字节(BYTE)。下图给出了k个像素(2K个字节)输出的格式。
对于OV7620,它有2组并行的数据口Y[7..0]和UV[7..0],其中对于数据口Y[7..0],输出的是灰度值Y,对于UV[7..0]输出的色度信号UV。下图给出了k个像素(K个字节)输出的格式。
上面2个图已经非常明了的说明了两者输出格式的不同,现在对其优劣性做一下总结。
对于智能车竞赛,赛道是白底黑线,因此我们只关心图像的灰度值,并不是需要他们的彩色值。由此看来,对于OV7670,它只有一组数据口,默认输出RGB彩色图像,对我们来说并不是想要的;而对于OV7620,它有两组数据口,一组数据口输出的正是灰度值Y,我们无需去管UV引脚输出的信号,只采集Y口的数据,就能完美地体现出赛道的信息来。对于全白的赛道背景,采集回来的数据是255,对于黑色的赛道,采集回来的数据是0,这样就能很好的区别开赛道与背景。
由此可以总结,OV7620更适合做智能车摄像头。
//--------------------------------------------结束语-----------------------------------------------------//
声明:以上内容作者为DEMOK,水平有限,如有纰漏,恳求指正。
联系邮箱:
如果DEMOK所写的对大家有启发,请留下您的观点和意见,以便给更多的人启发;如果DEMOK所写的还没达到您的知识高度,也请留下您的意见,DEMOK一定会进行修正说明!